0

我是使用 JComboBox 的新手,我想从我的 MSAccess 数据库中填充 JComboBox。我有以下代码:

 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)。上面创建我的组合框的方式有问题吗,非常感谢先生。

4

1 回答 1

0

您已经在 gui 函数中本地定义了 listofSuppliersCombo,为了引用任何对象,在两种不同的方法中,您需要在上层范围内声明它。

如果您尝试如下操作,您的代码将起作用:

JComboBox listofSuppliersCombo;

public void gui()
{
   //Your Code
   listofSuppliersCombo=new JComboBox();
   //Your Code
}
public void fillCombo()
{
   //Your Code
   listofSuppliersCombo.addItem("Your Item");
   //Your Code
}
于 2013-10-18T14:03:31.867 回答