EditorComponentがフォーカスを取得する前にイベントを受け取るコンポーネントは、JTable自体です。
JTableは、processKeyBindingメソッドによるキーバインドを介して、選択したセルのエディターコンポーネントにキーイベントを渡します。 このため、キーイベントリスナーには通知されません。
私のカスタムエディタは、JPanel(コンポジットエディタ)であるためprocessKeyBindingが存在しませんでした。その後、キーイベントは失われました。
解決策は、この機能を実行するためにpuclic関数を使用してカスタムTextFieldを使用してprocessKeyBindingアクションを渡します。
public class KeyBindingTextField extends JTextField {
protected boolean processKeyBindingPublic(KeyStroke ks, KeyEvent e, int condition, boolean pressed) {
return super.processKeyBinding(ks, e, condition, pressed);
}
}
はその後、私はJPanelのからのTextFieldにキーバインドメソッドを渡します。
protected boolean processKeyBinding(KeyStroke ks, KeyEvent e, int condition, boolean pressed) {
return TextField.processKeyBindingPublic(ks, e, condition, pressed);
}
は、なぜあなたは、キーイベントを取得しようとしていますか? – camickr