Добрый день!
Подскажите, каким образом можно сделать следующее:
class a (формируется некий резалтсет rs)
class b (форма, упр эелементы и "все дела")
class c (main)
Так вот в main получаем экземпляры классов a и b
На форме (b) есть такой элемент jComboBox
Так вот каким образом можно вытягивая данные из ResultSet сразу же запихивать их в jComboBox как элементы выпадающего списка?
Пробовал нечто вроде:
ResultSet mainResSet = a.getMainResultSet();
try{
while (mainResSet.next()) {
b.getFrame().jComboBox1.addItem(mainResSet.getString(3));
System.out.println(mainResSet.getString(3));
}
} catch (SQLException sqle)
{
System.out.print("Boroda");
}
- не прокатывает, вылазит ошибка
java.lang.NullPointerException
at javax.swing.plaf.basic.BasicComboBoxUI.paintCurrentValue(BasicComboBoxUI.java:1156)
at javax.swing.plaf.basic.BasicComboBoxUI.paint(BasicComboBoxUI.java:954)
at javax.swing.plaf.ComponentUI.update(ComponentUI.java:142)
at javax.swing.JComponent.paintComponent(JComponent.java:541)
at javax.swing.JComponent.paint(JComponent.java:808)
at javax.swing.JComponent.paintWithOffscreenBuffer(JComponent.java:4795)
at javax.swing.JComponent.paintDoubleBuffered(JComponent.java:4748)Boroda
at javax.swing.JComponent._paintImmediately(JComponent.java:4692)
at javax.swing.JComponent.paintImmediately(JComponent.java:4495)
at javax.swing.RepaintManager.paintDirtyRegions(RepaintManager.java:410)
at javax.swing.SystemEventQueueUtilities$ComponentWorkRequest.run(SystemEventQueueUtilities.java:117)
at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:178)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:454)
at java.awt.EventDispatchThread.pumpOneEventForHierarchy(EventDispatchThread.java:201)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:151)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:145)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:137)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:100)
Как вытянуть данные из ResultSet?
Модератор: Absurd
а как комбобокс создаешь?
Еще можно сохранить весь твой резалтсет в массив объектов а потом создать новый комбобокс по данному массивую
Еще можно сохранить весь твой резалтсет в массив объектов а потом создать новый комбобокс по данному массивую
В SAD - все в SAD.
Chester, похоже ошибка не имеет отношения к resultset'у. Ты просто пытаешься добавить null в комбобокс.
По уму нужно проверку делать.
По уму нужно проверку делать.
Даже самый дурацкий замысел можно воплотить мастерски
Причем null должен в этом случае добавляться первым.AiK писал(а):Chester, похоже ошибка не имеет отношения к resultset'у. Ты просто пытаешься добавить null в комбобокс.
По уму нужно проверку делать.
Либо действительно jComboBox1 имеет значение null.
По-моему там null негде взятся, т.к. он проверяет циклом по mainResSet.next(), а потом берет mainResSet.getString(3), даже если там пусто, он преобразует в пустую строку. Другое дело, если там две пустых строки, тогда будет exception, но не такой.
Я думаю, что проблема в строке b.getFrame().jComboBox1.addItem(mainResSet.getString(3));
Наверное лучше сделать метод, например public void refresh(String s); в классе b, и там проверять во-первых не пустая ли строка, а во-вторых нет ли уже такой строки в твоем jComboBox1. Да, если у тебя появляются в этом столбце (третьем) одинаковые элементы, то похоже, что у тебя плохо спроектирована БД.
Я думаю, что проблема в строке b.getFrame().jComboBox1.addItem(mainResSet.getString(3));
Наверное лучше сделать метод, например public void refresh(String s); в классе b, и там проверять во-первых не пустая ли строка, а во-вторых нет ли уже такой строки в твоем jComboBox1. Да, если у тебя появляются в этом столбце (третьем) одинаковые элементы, то похоже, что у тебя плохо спроектирована БД.