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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> не выводятся данные в форму 
V
    Опции темы
ЛунныйОборотень
Дата 31.3.2009, 13:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


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

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



не выводяться данные в форму,а выводится исключение- java.lang.NullPointerException

Смотрел аналогичные топики- как загрузить данные из БД в таблицу на форме
,пробовал как там написано.результат тот же...


В классе ManagementSystem где формируется запрос
Код

public Collection<Detali> getAllDetails() throws SQLException, InterruptedException
{
    Collection<Detali> detailsAll=new ArrayList<Detali>();
    Statement stmt=null;
    ResultSet rs=null;
    stmt=(Statement) con.createStatement();
    rs=stmt.executeQuery("SELECT ID,naimenovanie,price,kolichestvo,sklad,izgotovitel,capacity,dopusk,gruppaTKE,svobodnye FROM detali");
    try {
    while(rs.next())
    {
        Detali det=new Detali(rs);
        detailsAll.add(det);
        System.out.println("vyzov metoda  getAllDetails");
        System.out.println(det);

     
    }
   }
    finally{
    if(rs!=null)
    {
        rs.close();
    }
    if(stmt!=null)
    {
        stmt.close();
    }
    }
    return detailsAll;
}



в классе JFrame где это все отображается-

Код

  private JTable detaliTable; 


Код


  private void showAllDetails() throws SQLException, InterruptedException, ClassNotFoundException {
       //   пытаюсь вывести в таблицу,созданную в GUI
         Collection<Detali> d=ms.getAllDetails();
       
          jTable1.setModel(new DetaliTableModel(new Vector<Detali>(d)));

       
        // Здесь-созданную вручную
         if(detaliTable!=null)
         {
              Collection<Detali> s=ms.getAllDetails();
              
              detaliTable.setModel(new DetaliTableModel(new Vector<Detali>(s)));

         }
        
        JOptionPane.showMessageDialog(this, "showAllDetails");
    }


// Получается,что  например detaliTable у меня null


// класс DetaliTableModel

Код

public class DetaliTableModel extends AbstractTableModel {
// delaem xranilishe dlia  s[iska detalei
    private Vector details;


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

    DetaliTableModel() {

    }


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

    public int getColumnCount() {
      return  10; // kolichestvo stolbtsov-10(pomenial na 9.potom vernut
    }

    public String getColomsName(int colomn)
    {
        String[] colNames={"ID","Naimenovanie","Price","Kolichestvo","Sklad","Izgotovitel","Capacity","dopusk","GruppaTKE","Svobodnye"};
        return colNames[colomn];
    }

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

        if(details!=null)
        {
            Detali det=(Detali) details.get(rowIndex);

            switch(columnIndex) {
                case 0: return det.getId();
                case 1: return det.getNaimenovanie();
                case 2: return det.getPrice();
                case 3: return det.getKolichestvo();
                case 4: return det.getSklad();
                case 5: return det.getIzgotovitel();
                case 6: return det.getCapacity();
                case 7: return det.getDopusk();
                case 8: return det.getGruppaTKE();
                case 9: return det.getSvobodnye();
            }
        }
                        return null;
    }


Код кнопки

Код

   private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {                                         
       // System.out.println(detaliTable.getModel().toString());
        try {
            try {
                showAllDetails();
            } catch (ClassNotFoundException ex) {
                Logger.getLogger(jFrame.class.getName()).log(Level.SEVERE, null, ex);
            }
        } catch (SQLException ex) {
            Logger.getLogger(jFrame.class.getName()).log(Level.SEVERE, null, ex);
        } catch (InterruptedException ex) {
            Logger.getLogger(jFrame.class.getName()).log(Level.SEVERE, null, ex);
        }



Таким образом- detaliTable у меня null , при нажатии на ошибку ставит курсор напротив строки  Collection<Detali> s=ms.getAllDetails(); в методе showAllDetails().
Подскажите пожалуйста как исправить?

PM MAIL   Вверх
goodday1941
Дата 31.3.2009, 13:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 709
Регистрация: 16.7.2006
Где: Украина, Киев

Репутация: 8
Всего: 9



текст эксепшина выложите плз


--------------------
SCJP 6
PM MAIL ICQ Skype GTalk   Вверх
ЛунныйОборотень
Дата 31.3.2009, 14:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


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

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



run:
[TopLink Info]: 2009.03.31 03:31:36.972--ServerSession(16554308)--TopLink, version: Oracle TopLink Essentials - 2.0.1 (Build b09d-fcs (12/06/2007))
Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException
        at diplom1.jFrame.showAllDetails(jFrame.java:230)
        at diplom1.jFrame.jButton1ActionPerformed(jFrame.java:183)
        at diplom1.jFrame.access$100(jFrame.java:44)
        at diplom1.jFrame$2.actionPerformed(jFrame.java:135)
        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)

PM MAIL   Вверх
goodday1941
Дата 31.3.2009, 14:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 709
Регистрация: 16.7.2006
Где: Украина, Киев

Репутация: 8
Всего: 9



у тебя переменная ms - null

Добавлено через 2 минуты и 2 секунды
Код

ManagementSystem.getInstance().showAllDetails();



--------------------
SCJP 6
PM MAIL ICQ Skype GTalk   Вверх
ЛунныйОборотень
Дата 31.3.2009, 15:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


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

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



goodday1941, спасибо!
Ошибка крылась еще и в том,что надо было    ее инициализировать правильно...-
Код

private ManagementSystem ms =ManagementSystem.getInstance();

PM MAIL   Вверх
goodday1941
Дата 31.3.2009, 15:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 709
Регистрация: 16.7.2006
Где: Украина, Киев

Репутация: 8
Всего: 9



дело не в этом... Вы в принципе можете не создавать переменную ms, так как класс -  синглтон и у него все равно всегда будет только один инстанс... просто везде где Вам нужно достучаться до ManagementSystem пишете ManagementSystem.getInstance()...

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


--------------------
SCJP 6
PM MAIL ICQ Skype GTalk   Вверх
ЛунныйОборотень
Дата 31.3.2009, 15:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


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

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



goodday1941, спасибо не знал этих ньансов.. 
Цитата

. просто везде где Вам нужно достучаться до ManagementSystem пишете ManagementSystem.getInstance()...

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.1091 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


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

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