1

私は JTable とその中に他のいくつかの要素を持つ JFrame に取り組んでいます。ユーザーができるようにしたいのは、(設定された行数で) テーブルをタブで移動し、テーブルの右下にフォーカスがあるときに、もう一度タブを押すと別のコンポーネントにジャンプすることです。 JTextField の場合。

ユーザーがテーブルをタブで移動するだけの場合に備えて、これを実現するために KeyListener を使用しました。私が抱えている問題は、ユーザーがセルを編集してからタブを押すと、TableCellEditor にフォーカスがあるように見え、テーブルに追加した KeyListener が呼び出されないことです。ドキュメントで私が言えることから、CellEditor は ChangeEvent しか持てない CellEditorListener しか持つことができません。

これの回避策、または私が考えていないトリックを知っている人はいますか?

4

2 に答える 2

3

ユーザーがテーブルをタブで移動するだけの場合に備えて、これを実現するために KeyListener を使用しました。

KeyListener を使用しないでください。Swing は、キー バインドで使用するように設計されています。

カスタマイズを提供しながら既存のタブ アクションを再利用する方法を示すアプローチについては、Table Tabbingを参照してください。このアプローチはデフォルトのタブアクションを使用するため、うまくいけば問題も解決します。

于 2013-05-10T16:15:02.190 に答える