Модераторы: LSD, AntonSaburov
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> PostavshikTableModel cannot be cast to javax.swing, модель аналогичной таблицы проходит... 
V
    Опции темы
ЛунныйОборотень
Дата 16.4.2009, 21:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 174
Регистрация: 12.11.2006

Репутация: нет
Всего: 1



Здравствуйте!

При попытке вывода в форму выдается исключение -


Код

Exception in thread "AWT-EventQueue-0" java.lang.ClassCastException: PostavshikTableModel cannot be cast to javax.swing.table.TableModel
        at diplom1.PostavshikiFrame.showAllPostavshiki(PostavshikiFrame.java:131)
        at diplom1.PostavshikiFrame.jButtonShowAllPostavshikActionPerformed(PostavshikiFrame.java:108)
        at diplom1.PostavshikiFrame.access$000(PostavshikiFrame.java:28)
        at diplom1.PostavshikiFrame$2.actionPerformed(PostavshikiFrame.java:75)
        at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:1995)
        at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2318)
        at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:387)
        at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:242)
        at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:236)
        at java.awt.Component.processMouseEvent(Component.java:6134)
        at javax.swing.JComponent.processMouseEvent(JComponent.java:3265)
        at java.awt.Component.processEvent(Component.java:5899)
        at java.awt.Container.processEvent(Container.java:2023)
        at java.awt.Component.dispatchEventImpl(Component.java:4501)
        at java.awt.Container.dispatchEventImpl(Container.java:2081)
        at java.awt.Component.dispatchEvent(Component.java:4331)
        at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4301)
        at java.awt.LightweightDispatcher.processMouseEvent(Container.java:3965)
        at java.awt.LightweightDispatcher.dispatchEvent(Container.java:3895)
        at java.awt.Container.dispatchEventImpl(Container.java:2067)
        at java.awt.Window.dispatchEventImpl(Window.java:2458)
        at java.awt.Component.dispatchEvent(Component.java:4331)
        at java.awt.EventQueue.dispatchEvent(EventQueue.java:599)
        at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:269)
        at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:184)
        at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:174)
        at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:169)
        at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:161)
        at java.awt.EventDispatchThread.run(EventDispatchThread.java:122)





вот сам код модели - 

Код

/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package diplom1;

import java.util.Vector;

/**
 *
 * @author konstantin
 */
public class PostavshikTableModel {



    private Vector postavshik;


    //model pri sozdanii polychiaet spisok detalei
    public PostavshikTableModel(Vector postavshik)
    {
        this.postavshik=postavshik;
    }

    PostavshikTableModel() {

    }


    public int getRowCount() {
        if(postavshik!=null)
        {
            return postavshik.size();
        }
        return 0;
    }

    public int getColumnCount() {
      return  6; 
    }

    public String getColomsName(int colomn)
    {
        String[] colNames={"ID","Naimenovanie","Adress","Director","Telefon","mail"};
        return colNames[colomn];
    }

// Vozvrashiaem dannye dlia opredelennoi stroki i stolbtsa
    public Object getValueAt(int rowIndex, int columnIndex) {

        if(postavshik!=null)
        {
            Postavshik post= (Postavshik) postavshik.get(rowIndex);

            switch(columnIndex) {
                case 0: return post.getId();
                case 1: return post.getNaimenovanie();
                case 2: return post.getAdress();
                case 3: return post.getDirector();
                case 4: return post.getTelefon();
                case 5: return post.getMail();
                

            }
        }
                        return null;
    }


    // dobavit detal- d razrabotke- smotri  http://forum.vingrad.ru/forum/topic-250259.html
    /*
    public Vector setValueAt(Postavshik postavshik,int rowIndex,int colomnIndex) {

        if(postavshik!=null)
        {
           Vector r=new Vector();
        //   Detali det=this.getDetail(rowIndex);
          postavshik.setId(postavshik.getId());
          postavshik.setAdress(postavshik.getAdress());
          postavshik.setDirector(postavshik.getDirector());
          postavshik.setMail(postavshik.getMail());
          postavshik.setNaimenovanie(postavshik.getNaimenovanie());
          postavshik.setTelefon(postavshik.getTelefon());
           r.add(postavshik);

          
           return r; 
        }

        return null;
    }
     */


      public boolean isEditable() {


        return true;
}



    // metod kotoryi vozvrashaiet detal po nomery stroki

    public Postavshik getPostavshik(int rowIndex)
    {
        if(postavshik!=null) {
            if(rowIndex<postavshik.size()) // vozvrashiaet nomer komponenta
            {
                return  (Postavshik) postavshik.get(rowIndex);
            }

        }
                return null;
    }



}



в форме  -PostavshikiFrame
 
Код

private void showAllPostavshiki() throws SQLException
      {

          if(jTablePostavshiki!=null)
          {
jTablePostavshiki.getModel();
            
Collection<Postavshik> r=ms.getAllPostavshik();
//jTablePostavshiki.setModel(new PostavshikTableModel(new Vector(r) )); // ne rabotaet
jTablePostavshiki.setModel(jTablePostavshiki.getModel());
jTablePostavshiki.setModel((TableModel) new PostavshikTableModel(new Vector(r)));
JOptionPane.showMessageDialog(this, "showAllPostavshiki");
    

          }





в форме вызывался метод getAllPostavshik из класса ManagementSystem- главного класса
вот этот метод-

Код


// polychit spisok vsex postavshikov
public Collection<Postavshik> getAllPostavshik() throws SQLException
{
 Collection<Postavshik> postavshiki=new ArrayList<Postavshik>();
 Statement stmt=(Statement) con.createStatement();
 ResultSet rs=stmt.executeQuery("SELECT ID,naimenovanie,adress,director,telefon,mail FROM izgotovitel ");
 //stmt=  (Statement) con.createStatement();
 //rs=stmt.executeQuery("SELECT ID,naimenovanie,adress,director,telefon,mail FROM izgotovitel ");
 while(rs.next())
 {
     Postavshik postav=new Postavshik();
     postavshiki.add(postav);  // v kollectsiy postavshiki dobavit postavshka

 }
 // esli soedinenie syshestvyet to zakryt-choby ne zabivat
 if(rs!=null)
 {
     rs.close();
 }
 if(stmt!=null)
 {
     stmt.close();
 }
 return postavshiki;
}




если честно,не понимаю,что компилятору не нравится в моей модели...перерыл все что можно...

ПС - я так понимаю,что при формировании таблицы компилятор берет мою модель(если я указал ему) и на основе ее формирует таблицу?
Читаю книгу Java2 Том2 Тонкости программирования -так там в примере я не увидел прямого вызова методов из модели.
я прав?поправьте,если заблуждаюсь.

спасибо.

Добавлено через 6 минут и 52 секунды
да,компилятор в методе формы постоянно требует чтобы я привел в строке

Код

jTablePostavshiki.setModel((TableModel) new PostavshikTableModel(new Vector(r)));


мою модель таблицы к стандартной....если я это не делаю,выдает ошибку,а если уступаю его мольбам-то при вызове этого метода и выпадает исключение
PM MAIL   Вверх
aleksandy
Дата 17.4.2009, 06:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 260
Регистрация: 17.12.2006

Репутация: 1
Всего: 5



Метод JTable#setModel() ожидает объект, реализующий интерфейс javax.swing.TableModel. Дальше продолжать?
PM   Вверх
ЛунныйОборотень
Дата 17.4.2009, 09:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 174
Регистрация: 12.11.2006

Репутация: нет
Всего: 1



aleksandy, нет не надоsmile
спасибо!
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Java"
LSD   AntonSaburov
powerOn   jk1
  • Прежде, чем задать вопрос, прочтите это!
  • Книги по Java собираются здесь.
  • Документация и ресурсы по Java находятся здесь.
  • Используйте теги [code=java][/code] для подсветки кода. Используйтe чекбокс "транслит", если у Вас нет русских шрифтов.
  • Помечайте свой вопрос как решённый, если на него получен ответ. Ссылка "Пометить как решённый" находится над первым постом.
  • Действия модераторов можно обсудить здесь.
  • FAQ раздела лежит здесь.

Если Вам помогли, и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, LSD, AntonSaburov, powerOn, jk1.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Java: GUI и Java FX приложения | Следующая тема »


 




[ Время генерации скрипта: 0.0770 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.