4

JComboBoxを含むSwingsGUIがあり、データベースからデータをロードしたいと思います。

文字列配列のデータベースからデータを取得しました。次に、この文字列配列をJComboBoxに入力するにはどうすればよいですか。

編集済み================================================= ===================

実際には、Java GUIがユーザーに表示されるときに、JComboBoxはすでにインスタンス化されています。そのため、配列をパラメーターとしてコンストラクターに渡すことはできません。

すでにインスタンス化されているJComboBoxにデータを入力するにはどうすればよいですか?

以下は、Nebeansが生成したコードです。

jComboBox15 = new javax.swing.JComboBox();

jComboBox15.setModel(new javax.swing.DefaultComboBoxModel(new String[] { "12" }));

jComboBox15.setName("jComboBox15");

別のComboBoxModelを上記のjComboBoxに設定できますか?

4

5 に答える 5

4

ああ、コンボボックスはすでにインスタンス化されています...その場合は、内容をクリアして、アイテムごとに新しい配列を追加してください。

comboBox.removeAllItems();

for(String str : strArray) {
   comboBox.addItem(str);
}

これがEDTから行われていることを確認してください!

于 2010-01-19T17:56:42.603 に答える
3
new JComboBox(stringArray);

役立つヒント-使用しているクラスがわかっている場合は、そのjavadocを確認してください。ほとんどの場合、必要な情報が含まれています。

編集:更新後、次を使用します:

for (String string : stringArray) {
   comboBox.addItem(string);
}

(私のヒントはまだ適用されます)

于 2010-01-19T17:56:07.910 に答える
3

これに関する優れた記事は次のとおりです。コンボボックスの使用方法(Javaチュートリアル)

基本的に:

String[] dbData = dateFromDb();
JComboBox dbCombo = new JComboBox(dbData);

あなたは次のような他のことを知る必要があります

  • 編集不可能なコンボボックスの使用
  • コンボボックスでのイベントの処理
  • 編集可能なコンボボックスの使用
  • カスタムレンダラーの提供
  • コンボボックスAPI
  • コンボボックスを使用する例

その記事にはそれに関する情報が含まれています。

編集

はい、編集した投稿に表示することを行うか、コンボモデルへの参照を保持することができます。

DefaultComboBoxModel dcm = new DefaultComboBoxModel();
combo.setModel( dcm );
....
for( String newRow : dataFetched ) {
    dcm.addElement( newRow )
}
于 2010-01-19T17:56:15.457 に答える
3

NetBeansが行うことは、必要なことだと思います。

DefaultComboBoxModelどこからでも、オブジェクトを作成して呼び出すことができますcomboBox.setModel(defaultComboBox);

これが私がやりたいと思うことの非常に小さな例です:ユーザーが「データの変更」ボタンをクリックすると、コンボボックスは配列からのデータで満たされます(メソッドactionPerformed)。

public class TestJComboBox extends JFrame {
    private JComboBox comboBox = new JComboBox();

    public TestJComboBox() {

        JButton changeComboBoxData = new JButton("Change data");
        changeComboBoxData.addActionListener(new ActionListener() {

            public void actionPerformed(ActionEvent e) {
                DefaultComboBoxModel cbm = new DefaultComboBoxModel(
                        new String[] { "hola", "adios" });
                comboBox.setModel(cbm);
            }
        });

        super.setLayout(new BorderLayout(10, 10));
        super.setSize(100, 100);
        super.add(changeComboBoxData, BorderLayout.NORTH);
        super.add(comboBox, BorderLayout.SOUTH);
    }

    public static void main(String[] args) {
        new TestJComboBox().setVisible(true);
    }
}
于 2010-01-19T18:20:26.090 に答える
1
JComboBox jComboOperator = new JComboBox();

arrOperatorName = new String []{"Visa", "MasterCard", "American Express"};
jComboOperator.setModel(new DefaultComboBoxModel(arrOperatorName));
于 2016-07-22T06:38:41.347 に答える