2012-03-02 4 views
0

netbeans 7.1のmysqlデータベースから作成するコンボボックスを追加したいと思います。以下のような単純な実装はしましたが、このコーディングは機能しません。netbeans 7.1でjcomboboxを実装する

private void jComboBox1ActionPerformed(java.awt.event.ActionEvent evt) { 
    try 
    { 
     Connection con = DriverManager.getConnection("jdbc:mysql://localhost/combo","root","root123"); 
     Statement stmnt = (Statement) con.createStatement(); 
     String SQL = "SELECT * FROM items"; 
     ResultSet rs = stmnt.executeQuery(SQL); 
     while(rs.next()) 
     { 
      jComboBox1.addItem(rs.getString("itemcode")); 
     } 
    } 
    ... 
} 

この問題をどのように解決できますか。

+2

、期待と実際の結果を記載してください。このコードを実行しているから、どんな結果がなど – Puce

+0

は、私のようなドロップダウンメニューで項目コードを見てみたいですか?そうでない場合は、tryブロックの最後にcatchブロックを追加して、何が起こるかを確認してください。 – Grant

+0

あります... Itemcode1 Itemcode2 Itemcode3 : – Ocracoke

答えて

1

あなたのコンボボックスがStringアイテムで構成されているとします。これらの文字列アイテムをディスプレイに使用するコンボボックスを作成する必要があります。

String items[] = {...}; 

サンプルコンボボックスの宣言は次のように考えられます。だからあなたのデータベースからのデータを経由してitems配列を取り込む

JComboBox comboBox = new JComboBox(items); 

あなたの問題を解決することができ、すなわちコンボボックスには、データベースとは何の関係もありませんしかし、文字列アイテムは持っています。あなたは、あなたが動的にリストに項目を追加できるように、ArrayListの代わりの配列を使用することができ、データベースから取得されますどのように多くの項目がわからないので

int index = 0; 
ResultSet rs = statement.executeQuery(SQL); 
while(rs.next()) 
    items[index] = rs.getString("itemcode"); 

、。

+0

私の質問にあなたの時間を殺すためにありがとう。 私はこれをやろうとしましたが、問題は解決しません。私はこのメソッドに "private void jComboBox1ActionPerformed(java.awt.event.ActionEvent evt)"というコードを追加することが正しいことを知りたいですか?私は問題がこれだと思う。私がプログラムを実行しているときに、ドロップダウンメニューはnetbeans(Item1、Item2 ....)によって設定されたデフォルト値を表示するので、私はプログラミングの初心者ですので、これを取り除く方法がわかりません – Grant

+0

@Grantデータベースからアイテムを表示するコンボボックスが必要です。それはそれ自体をリフレッシュしますか?いいえ。最初にデータベースから項目を取り込み、この配列をコンボボックスに設定します。コンボボックスは単なるGUIコンポーネントであり、データベースとは関係ありません。 – Juvanis

+0

はい私はポイントを得た。私のプログラムはデータベースから値を正しく取得して配列に格納しますが、問題はjComboBox1.addItems()を使ってコンボボックスのリストに値を表示するときです。データベースから返された値は表示されません。 – Grant

0

試し{

Class.forName("com.mysql.jdbc.Driver"); 
    Connection con=DriverManager.getConnection("jdbc:mysql:///dbname", "username", "password"); 
    Statement st=con.createStatement(); 
    Resultset r=st.executeQuary("SELECT * FROM table name"); 
    while(r.next()){ 
     Vector v=new Vector(); 
     ComboBox1.setModel(new DefaultComboBoxModel(v)); 
    } 

} catch (Exception e) { 
    e.printStackTrace(); 
} 
+0

'try'ブロックの開始前に4つのスペースを残して、コーディング段落のスペースに合わせてください。 – Freakyuser

関連する問題