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