web-dev-qa-db-ja.com

JComboBoxを動的に変更する

データベースからデータ値を正常にフェッチしています。また、それらをString[]配列に格納しました。実行されたキーアクションに応じて、JComboBoxのアイテムとして文字列配列をロードする必要があります。フェッチされた値は押されたキーに依存するため、キーが押されたときはいつでもJComboBoxのアイテムを再ロードできますか?むしろ、JComboBoxアイテムを動的に更新する必要があります。

22
Suman.hassan95
DefaultComboBoxModel model = new DefaultComboBoxModel( yourStringArray );
comboBox.setModel( model );
36
camickr

いくつかのオプションがあります。 removeAllItems()(または他の削除メソッドの1つ)とaddItem(Object anObject)を使用して、選択可能なオブジェクトを操作できます。または、ComboBoxModelを実装して、配列からデータを提供できるようにすることもできます。

6
unholysampler

これは、デフォルトのコンボボックスモデルを示すためのデモです。

public class ComboPanel extends JPanel {

    JComboBox jcbo;
    // this is constructor
    public ComboPanel(ArrayList<String> items) {
        jcbo = new JComboBox();
        // getting exiting combo box model
        DefaultComboBoxModel model = (DefaultComboBoxModel) jcbo.getModel();
        // removing old data
        model.removeAllElements();

        for (String item : items) {
            model.addElement(item);
        }

        // setting model with new data
        jcbo.setModel(model);
        // adding combobox to panel
        this.add(jcbo);    
    }
}

これが少し役に立てば幸いです:)

6
Alice