2

データベースに追加したいのですが、コンボボックスに新しい名前を入力すると、編集可能なコンボボックスモデルが追加されます。私はデータベースに追加する方法をうまく持っています.ComboBoxに追加されているエントリを何らかの方法でリッスンするようにしようとしています.

これを行う最善の方法は何ですか?

Editable ComboBoxesに関する Java チュートリアルを読んだところ、次のように書かれていました。

編集可能なコンボ ボックスは、ユーザーがメニューから項目を選択し、ユーザーが Enter キーを入力すると、アクション イベントを発生させます。ユーザーがコンボ ボックスに値を入力しても、メニューは変更されないことに注意してください。必要に応じて、ユーザーが一意の値を入力するたびにコンボ ボックスのメニューに新しい項目を追加するアクション リスナーを簡単に作成できます

それで、私は自分自身にこれを試してみようと思い、いくつかのを調べました. これが私の試みです。基本的に、私が見つけた例から変数名をコピーして貼り付けました。

playerNameComboBox.addActionListener(new ActionListener() {

    @Override
    public void actionPerformed(ActionEvent e) {
        if (e.getActionCommand().equals("comboBoxEdited")) {
            System.out.println("Adding new player!");
            IController.Util.getInstance().addNewPlayer();
            playerNameComboBox.insertItemAt(playerNameComboBox.getSelectedItem(), 0);
        }
    }
});

新しい名前を入力して Enter キーを押しても何も起こりません。ComboBox に新しいデータベース エントリと追加オプションはありません。上記の例では、アクション コマンドがデフォルトであると想定していたので、ComboBox にアクション コマンドをアタッチしていません。

しかし、コンボボックスに焦点を当てて、Enter キーを押したときにそのアクション コマンドを叫ぶようにするにはどうすればよいでしょうか。コンボボックスには、それを叫ぶためのデフォルトの動作がいくつかあると思いましたか? if(playerNameComboBox.hasFocus())ステートメントを使用する必要がありますか? 私のコンボボックスがFocus()を持っているとき、ある種のキーリスナーを実装する必要がありますか?

私は Java に非常に慣れていないので、この種のことをどのように行うべきかわかりません。どんな助けでも大歓迎です。

4

1 に答える 1