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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> java.lang.NullPointerException jlabel, проблема с jlabel 
:(
    Опции темы
izver84
Дата 18.8.2011, 13:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Добрый день 

На форме есть таблица и панель с лэйблом. 
Данные в таблицу заносятся с базы постгреса.
При нажатии стрелок верх и вниз происходит следующее:
1. Берется значение первой колонки таблицы из текущей строки.
2. Запускается функция постгреса.
3. Функция возвращает строку.
4. Значение строки отображается в лэйбле.

код

таблица
Код

private JTable getJTable() {
        if (jTable == null) {
            jTable = new JTable();            
            jTable.setModel(getDB()); 
            jTable.addKeyListener(new java.awt.event.KeyAdapter() {
                public void keyReleased(java.awt.event.KeyEvent e) {
                
                    if (e.getKeyCode() == KeyEvent.VK_DOWN || e.getKeyCode() == KeyEvent.VK_UP)
                       {                                      kod=DB.getValueAt(jTable.getSelectedRow(),0).toString().trim(); // Берется значение первой колонки таблицы из текущей строки.                        
                        closepot ();//вызов функции
                       }
                }
            });
        }
        return jTable;
    }


вызов модуля таблицы
Код

private database getDB() {
            DB = new database(                
                    "SELECT col1,col2,col3,col4 FROM table",
                    "base", "user", "pass", "table","","",new  String[]{"Код","Наименование","Адрес","Состояние"},new  String[][]{{"",""},{"",""},{"",""},{"",""}});
        return DB;
    }


функция
Код

подключение к серверу
public static Connection getInsertConnection( String DBNAME, String USERNAME, String PASSWORD) throws Exception {
        Driver d1;    
        d1 = (Driver)Class.forName("org.postgresql.Driver").newInstance();
           Connection conn = DriverManager.getConnection("jdbc:postgresql://"+ip+":5432/"+DBNAME, USERNAME, PASSWORD);          
            return conn;  
  }
сама функция.
private void closepot ()
    {
     
        
        Connection conn;
        try {
            conn = getInsertConnection("base", "user", "pass" );
                  CallableStatement proc=conn.prepareCall("{?=call function(?)}");
                     conn.setAutoCommit(false);        
                     proc.registerOutParameter(1, Types.VARCHAR);     
                     String s1_=kod;    
                     proc.setString(2,s1_); 
                     proc.execute();
                   
                     String results1 =proc.getString(1);//переменой results1 присваевается результат функции постгреса                 
                     System.out.println(" rez= "+results1); //вывод переменной
                 
                     jLabel.setText(results1);//отображение значения переменной в  jLabel. не работает
                      proc.close();
                  conn.commit();
                     //conn.close();
                
        } catch (Exception e1) {
            // TODO Автоматически созданный блок catch
            e1.printStackTrace();
        }
             
        finally {
                    }
        
    }


Проблема  в следующем. Я бегаю по таблице получаю результат функции. 
Режим 
Код
    System.out.println(" rez= "+results1); 
 работает,
но на  
Код
  jLabel.setText(results1); 
 выводится ошибка
Код


java.lang.NullPointerException
    at Sbit.Closepotr.closepot(Closepotr.java:208)
    at Sbit.Closepotr.getJTable(Closepotr.java:174)
    at Sbit.Closepotr.getJScrollPane(Closepotr.java:131)
    at Sbit.Closepotr.getJSplitPane(Closepotr.java:116)
    at Sbit.Closepotr.getJContentPane(Closepotr.java:101)
    at Sbit.Closepotr.initialize(Closepotr.java:86)
    at Sbit.Closepotr.<init>(Closepotr.java:42)
    at Sbit.Zaiavki$29.actionPerformed(Zaiavki.java:2650)
    at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:2012)
    at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2335)
    at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:404)
    at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:259)
    at javax.swing.AbstractButton.doClick(AbstractButton.java:374)
    at javax.swing.plaf.basic.BasicMenuItemUI.doClick(BasicMenuItemUI.java:829)
    at javax.swing.plaf.basic.BasicMenuItemUI$Handler.mouseReleased(BasicMenuItemUI.java:873)
    at java.awt.Component.processMouseEvent(Component.java:6268)
    at javax.swing.JComponent.processMouseEvent(JComponent.java:3267)
    at java.awt.Component.processEvent(Component.java:6033)
    at java.awt.Container.processEvent(Container.java:2045)
    at java.awt.Component.dispatchEventImpl(Component.java:4629)
    at java.awt.Container.dispatchEventImpl(Container.java:2103)
    at java.awt.Component.dispatchEvent(Component.java:4455)
    at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4633)
    at java.awt.LightweightDispatcher.processMouseEvent(Container.java:4297)
    at java.awt.LightweightDispatcher.dispatchEvent(Container.java:4227)
    at java.awt.Container.dispatchEventImpl(Container.java:2089)
    at java.awt.Window.dispatchEventImpl(Window.java:2517)
    at java.awt.Component.dispatchEvent(Component.java:4455)
    at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:649)
    at java.awt.EventQueue.access$000(EventQueue.java:96)
    at java.awt.EventQueue$1.run(EventQueue.java:608)
    at java.awt.EventQueue$1.run(EventQueue.java:606)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.security.AccessControlContext$1.doIntersectionPrivilege(AccessControlContext.java:105)
    at java.security.AccessControlContext$1.doIntersectionPrivilege(AccessControlContext.java:116)
    at java.awt.EventQueue$2.run(EventQueue.java:622)
    at java.awt.EventQueue$2.run(EventQueue.java:620)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.security.AccessControlContext$1.doIntersectionPrivilege(AccessControlContext.java:105)
    at java.awt.EventQueue.dispatchEvent(EventQueue.java:619)
    at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:275)
    at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:200)
    at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:190)
    at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:185)
    at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:177)
    at java.awt.EventDispatchThread.run(EventDispatchThread.java:138)
 

Не пойму в чем дело. Помогите пожалуйста.


--------------------
Если новая программа с первого раза компилируется без ошибок, значит, она написана принципиально неправильно. 
PM MAIL   Вверх
jk1
Дата 18.8.2011, 18:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


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

Репутация: 21
Всего: 75



jLabel проинициализирован?


--------------------
Opinions are like assholes — everybody has one
PM MAIL   Вверх
izver84
Дата 19.8.2011, 08:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



jk1,  да
Код

private JLabel jLabel = null;
....................................
    private JPanel getJPanel() {
        if (jPanel == null) {
            jLabel = new JLabel();
            jLabel.setBounds(new Rectangle(8, 3, 615, 18));
            jLabel.setText("");            
            jPanel = new JPanel();
            jPanel.setLayout(null);
            jPanel.add(jLabel, null);
        }
        return jPanel;
    }



--------------------
Если новая программа с первого раза компилируется без ошибок, значит, она написана принципиально неправильно. 
PM MAIL   Вверх
jk1
Дата 20.8.2011, 12:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


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

Репутация: 21
Всего: 75



Отрисовка GUI выполняется на EDT ?


--------------------
Opinions are like assholes — everybody has one
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.0439 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


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

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