Swing/ActionMap の変更点
- 追加された行はこの色です。
- 削除された行はこの色です。
- Swing/ActionMap へ行く。
- Swing/ActionMap の差分を削除
--- category: swing folder: ActionMap title: JTextFieldでコピー、貼り付けなどを禁止 tags: [JTextField, DefaultEditorKit, ActionMap] author: aterai pubdate: 2005-07-18T15:40:10+09:00 description: JTextFieldへのコピー、貼り付け、切り取りを禁止します。 image: https://lh6.googleusercontent.com/_9Z4BYR88imo/TQTHX8kSixI/AAAAAAAAARE/cRSBUI5TJWo/s800/ActionMap.png --- * 概要 [#summary] `JTextField`へのコピー、貼り付け、切り取りを禁止します。 #download(https://lh6.googleusercontent.com/_9Z4BYR88imo/TQTHX8kSixI/AAAAAAAAARE/cRSBUI5TJWo/s800/ActionMap.png) * サンプルコード [#sourcecode] #code(link){{ Action beep = new DefaultEditorKit.BeepAction(); ActionMap am = field.getActionMap(); am.put(DefaultEditorKit.cutAction, beep); am.put(DefaultEditorKit.copyAction, beep); am.put(DefaultEditorKit.pasteAction, beep); }} * 解説 [#explanation] 上記のサンプルでは、`JTextField`の`ActionMap`から、コピーなどの`Action`を取得し、これらをビープ音を鳴らす`DefaultEditorKit.BeepAction()`に置き換えています。 上記のサンプルでは、`JTextField`の`ActionMap`からコピーなどの`Action`を取得し、これらをビープ音を鳴らす`DefaultEditorKit.BeepAction()`に置き換えています。 - 以下のように`copy`メソッドなどをオーバーライドする方法もある #code{{ JTextField field = new JTextField() { @Override public void copy() { UIManager.getLookAndFeel().provideErrorFeedback(this); // Toolkit.getDefaultToolkit().beep(); } }; }} * 参考リンク [#reference] - [[DefaultEditorKitでポップアップメニューからコピー>Swing/DefaultEditorKit]] - [[JComponentのKeyBinding一覧を取得する>Swing/KeyBinding]] - [https://docs.oracle.com/javase/jp/8/docs/api/javax/swing/text/DefaultEditorKit.html DefaultEditorKit (Java Platform SE 8)] * コメント [#comment] #comment #comment