3

シナリオ: JavaFx で 2 つの列を持つテーブル ビューを作成しました。テーブルにいくつかのサンプル データを入力しました。ここで、テーブルのセルを編集する必要があります。そのために、TableCell クラスをオーバーライドする新しいクラス (ComboTableCell) を作成しました。このクラスは、マウス クリックを使用してテーブルをトラバースする場合に完全に機能する、編集可能なコンボ ボックスのセル ファクトリを定義します。ただし、キーボード タブを使用してトラバースすると、問題が発生します。

問題: タブを使用して最初のセルを選択すると、コンボ ボックスとそのエディターにフォーカスが移ります。したがって、ユーザーはセルの編集を直接開始できます。

問題は、最初のセルの編集が完了したら、TAB ボタンを使用して次のセルに移動することですが、次のセルのコンボ ボックスにフォーカスがないため、ユーザーは次のように直接入力を開始できません。最初のセルの場合。テーブルでもセルがフォーカスされません。

以下のコードを使用して、タブを押したときにフォーカスをコンボボックスに戻そうとしました

Platform.runLater(new Runnable() {
        @Override
        public void run() {
            comboBox.requestFocus();

            //I have also tried with comboBox.getEditor().requestFocus(); but still the issue persists
            comboBox.getEditor().selectAll();
        }
    });

Plsはこの問題で私を助けてくれます.

4

1 に答える 1

1

私は同じ問題に直面しなければならず、回避策を見つけました。編集可能なコンボとして作成すると、問題が解決します。

ComboBox cb = new ComboBox(); cb.setEditable(true);

于 2016-05-09T13:56:37.470 に答える