いくつかのアクションをカスタム実装に置き換えることで、アプリケーション全体のSwingJTextFieldsのActionMapを変更したいと思います。次の投稿を参照できる理由の説明については、次のとおりです。
JTextComponentのキャレットに選択したテキストをスキップさせるにはどうすればよいですか?
これを行うと、これはうまく機能します。
ActionMap map = (ActionMap)UIManager.get("TextField.actionMap");
map.put(DefaultEditorKit.backwardAction, new MyCustomAction());
現在残っている唯一の問題は、これまでのところ、JTextFieldの最初のインスタンス化の後にそのコードを実行したときに、これが機能するようになっただけであるということです。ただし、理想的には、このコードをカスタムのルックアンドフィールまたはアプリケーションについて知る必要のない他の中心的な場所に統合したいと思います。呼び出し
UIManager.getDefaults()
最初は何も変更しません。UIManager.get( "TextField.actionMap")によって返されるマップは、その後もnullのままです。
現在、アプリケーションの初期化メソッドにダミーの新しいJTextField()を配置して、非常に醜いアクションマップを操作することに悩まされています。