Заполнить JcomboBox из базы данных MSAccess в Java
Я новичок в использовании JComboBox, я хотел заполнить JComboBox из моей базы данных MSAccess. У меня есть следующие коды:
public check_Writer() //Constructor
{
gui();
fillCombo();
}
public void gui()
{
JFrame mainFrame = new JFrame("Frame");
mainFrame.setSize(500,500);
mainFrame.setVisible(true);
JPanel mainPanel = new JPanel();
mainPanel.setBackground(color.BLUE);
mainFrame.add(mainPanel);
JComboBox listofSuppliersCombo = new JComboBox()
mainPanel.add(listofSuppliersCombo);
}
public void fillCombo()
{
String dataSourceName = "CheckWriterDB";
String db = "jdbc:odbc:" + dataSourceName;
try
{
Class.forName(sun.jdbc.odbc.JdbcOdbcDriver);
Connection conn = DriverManager.getConnection(db, "", "");
Statement st1 = conn.createStatement();
st1.execute("select Suppliers from SuppliersTable");
ResultSet rs1 = st1.getResultSet();
if (rs1!null)
{
while(rs1.next())
{
System.out.println(rs1.getString(1));
}
}
}
catch(Exception e)
{
JOptionPane.showMessageDialog(null, e)
}
}
}
Я отредактировал мои коды, сэр, мой код работает отлично, я могу напечатать свои данные в консоли, но я не могу заполнить свой JComboBox, я попробовал этот код, listOfSuppliersCombo.addItem(rs1.getString(1)); но сообщение об ошибке (java.lang.NullPointerException). Есть ли что-то не так с тем, как вы создали мой комбинированный список выше, большое спасибо, сэр.
1 ответ
Вы определили listofSuppliersCombo локально в функции gui, чтобы ссылаться на любой объект в двух разных методах, вам нужно объявить его в верхней области видимости.
Ваш код будет работать, если вы попробуете, как показано ниже:
JComboBox listofSuppliersCombo;
public void gui()
{
//Your Code
listofSuppliersCombo=new JComboBox();
//Your Code
}
public void fillCombo()
{
//Your Code
listofSuppliersCombo.addItem("Your Item");
//Your Code
}