私はJavaFX2.1をテストしており、編集可能なテーブルビューを希望どおりに動作させるようにしています。
JavaFX 2ドキュメントの例をベースとして使用しています:http://docs.oracle.com/javafx/2/ui_controls/table-view.htm
この例には2つの問題があります。
- ユーザーは、セルを編集するために3回クリックし、1回は行を選択し、1回はセルを選択して編集可能にし、さらにクリックしてTextFieldにフォーカスするように強制されます。
- 変更は、Enterキーが押されたときにのみコミットされます。セルの外側でマウスをクリックすると、セルに入力されたデータは失われます。
一方、正しく機能する機能の1つは、テキストを選択し、マウスを使用してTextField内でケアレットを何度でも再配置できることです。
これらの問題の両方に個別に関連する2つの質問があります。
と
最初の質問への回答がそれ自体で適用される場合、セルを編集するために1回クリックするだけで(行が選択された後)、テキストを選択してキャレットを移動できます。
2番目の質問への回答が単独で適用される場合、編集はEnterキーを押さずにコミットされますが、キャレットの再配置またはテキストの選択は1回しかできません。もう一度試すと、編集がコミットされます。 。
両方の回答を一緒に適用すると、フォーカスが正常に適用され、マウスがクリックされたときに編集がコミットされますが、キャレットの位置を変更したり、テキストを完全に選択したりすることができなくなります。セル内でマウスをクリックすると、編集がコミットされます。
私の質問は、キャレットを配置してテキストを選択する機能を失うことなく、元の2つの問題をどのように修正できるかということです。