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 を定義しました。2 つの異なる方法で、上位スコープで宣言する必要があります。

以下のように試してみると、コードが機能します。

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 に答える