0

編集可能なテーブル セルで問題が発生しました。私のプロジェクトでは、Tutorial on Oracleと同じように TableView を使用しています。

それによると、setCellFactory メソッドを使用して、TextFieldTableCell クラスの助けを借りてテーブル セルをテキスト フィールドとして再実装します。ただし、セルを編集できるようになるまでの手順が少し複雑であることがわかりました。

  1. 方向キーを使用して表のセルを選択します。
  2. 「Enter」を押してセルをテキストフィールドに変換し、編集できるようにします。
  3. テキストフィールドをクリックすると、内容を編集できます

問題はステップ 3 で、この表のセルにデータを入力する前にマウスをクリックする必要があります。

では、ステップ 3 を回避する解決策はありますか? これは、「Enter」を押すだけでデータを入力できるテキスト フィールドです (ステップ 2)。

ところで、英語は私の母国語ではありません。私が自分自身を明確にしたことを願っています。

4

2 に答える 2

0

ノードは手動でフォーカスできます。これTextFieldTableCellは、セルが編集モードのときにレンダリングされるTableCellノード(グラフィック)を持つものです。TextFieldこのtextFieldに手動でフォーカスする必要がありますが、を使用TextFieldTableCellしてtextFieldにアクセスすることはできません。ただし、参照しているチュートリアルで説明されている別の方法を好む場合は、集中する機会があります。そのチュートリアルから変更された唯一の方法は次のとおりです。

@Override
public void startEdit() {
    super.startEdit();
    createTextField();
    setText(null);
    setGraphic(textField);
    textField.selectAll();
    // Set the focus
    Platform.runLater(new Runnable() {
        @Override
        public void run() {
            textField.requestFocus();
        }
    });
}
于 2012-08-22T08:03:01.573 に答える