概要

JTextFieldへのコピー、貼り付け、切り取りを禁止します。

スクリーンショット

ActionMap.png

サンプルコード

Action beep  = new DefaultEditorKit.BeepAction();
ActionMap am = field.getActionMap();
am.put(DefaultEditorKit.cutAction, beep);
am.put(DefaultEditorKit.copyAction, beep);
am.put(DefaultEditorKit.pasteAction, beep);
View in GitHub: Java, Kotlin

解説

上記のサンプルでは、JTextFieldActionMapから、コピーなどのActionを取得し、これらをビープ音を鳴らすDefaultEditorKit.BeepAction()に置き換えています。

  • 以下のようにcopyメソッドなどをオーバーライドする方法もある
    JTextField field = new JTextField() {
      @Override public void copy() {
        UIManager.getLookAndFeel().provideErrorFeedback(this);
        // Toolkit.getDefaultToolkit().beep();
      }
    };
    

参考リンク

コメント