質問

私は、エディタコンポーネントとしてのJFormattedTextFieldでカスタムするTableCellEditor(DefaultCellEditorを拡張)を使用してテーブルを持っています。

今、私は問題を抱えて:編集中に私は別のボタンを押したとき。ボタンを押すと、エディタは、私が行った変更は、ボタンによって引き起こされる操作のために利用可能になるように、それは編集を停止したいと思いながら、「オープンかつアクティブ」のままです。

それでは、どのように異なるボタンが押されたときに編集が停止する原因となります。私はのJFormattedTextFieldののためにのsetFocusLostBehavior(JFormattedTextField.COMMIT)のを試してみましたが、効果を持っていないようでした。

=誰かがいくつかの良いアイデアを持っている願っています)。

役に立ちましたか?

解決

あなたが試すことがあります。

jtable.putClientProperty("terminateEditOnFocusLost", Boolean.TRUE);

他のヒント

非常にうまく動作します。

ありがとうasalamon74、ます。

Sunのバグデータベースで事をめぐる議論があります:バグ4724980:JTableの:テーブルがフォーカスを失ったとき、編集に何が起こるかを制御するためのAPIを追加します。に(また、他のバグエントリが発見されました)。 terminateEditOnFocusLostは、クラスのJavaソースで見ることができ、 "キャンセルコミットまたは-" 行動をオンのJTableの$ CellEditorRemover

そして、はい、それはそれはAPIのでは文書化されていないことを、やや奇妙だなど...

は、質問<のhref = "https://stackoverflow.com/questions/1276769/java-swing-changing-jtree-selection-while-editingstopcellediting-how-to-getを参照してください、これらの事でも多くの問題を持っていました「> Javaのスイング:JTreeの選択を変えながらeditingstopCellEditing():TreeListeners前に呼び出さstopCellEditing()を取得する方法:?のvalueChangedする

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top