- - PR -
JTextFieldのデフォルトのショートカットキーの削除方法
1
| 投稿者 | 投稿内容 |
|---|---|
|
投稿日時: 2002-12-26 17:57
こんにちは。
私は、今タグのテキストエディタを作っています。 そこで、ショートカットキーでデフォルトのものを 削除したいのですが、どうしても削除できません。 例えばデフォルトのショートカットキーでは Ctrl + xでカットをしてしまいます。 なんとかショートカットキーを消したいのです。 Keymapを取得し、削除したらキーの入力すら出来なくなってしまいました。 どなたか分かる方がいらっしゃいましたら教えていただけないでしょうか? よろしくお願いします。 |
|
投稿日時: 2002-12-30 01:52
デフォルトのキーマップを変えることで実現できます。
これには UIDefaults の focusInputMap を設定する方法と、 JTextComponent#loadKeyMap メソッドを使用する方法があります。 loadKeyMap を使った場合は、添付したサンプルのようになります。 このサンプルは Ctrl C と Ctrl V はビープがなり、Ctrl X は何 もしないようになっています。 -----------------------Test.java--------------------------- import javax.swing.JFrame; import javax.swing.JTextArea; import javax.swing.KeyStroke; import javax.swing.text.DefaultEditorKit; import javax.swing.text.JTextComponent; import javax.swing.text.Keymap; public class Test { public Test() { JTextComponent.KeyBinding[] bindings = { new JTextComponent.KeyBinding( KeyStroke.getKeyStroke("ctrl C"), DefaultEditorKit.beepAction), new JTextComponent.KeyBinding( KeyStroke.getKeyStroke("ctrl V"), DefaultEditorKit.beepAction), new JTextComponent.KeyBinding( KeyStroke.getKeyStroke("ctrl X"), DefaultEditorKit.defaultKeyTypedAction) }; JTextComponent textComp = new JTextArea(); Keymap keymap = textComp.getKeymap(); JTextComponent.loadKeymap(keymap, bindings, textComp.getActions()); JFrame frame = new JFrame("Test"); JTextArea area = new JTextArea(); frame.setBounds(100, 100, 200, 200); frame.getContentPane().add(area); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); frame.setVisible(true); } public static void main(String[] args) { new Test(); } } |
|
投稿日時: 2003-01-08 10:20
ご返答ありがとうございます。
レスが遅くなってしまって申し訳ありません。 早速今日やってみようと思います。 本当にありがとうございます。 |
|
投稿日時: 2003-01-09 13:25
ありがとうございました。
ショートカットキーを削除することが出来ました。 本当に感謝です。 |
1
