从java中的MS Access数据库填充JcomboBox

时间:2013-08-14 10:18:49

标签: jcombobox

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

1 个答案:

答案 0 :(得分: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
}