Заполнить 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
}
Другие вопросы по тегам