• category: swing folder: ActionMap title: JTextFieldでコピー、貼り付けなどを禁止 tags: [JTextField, DefaultEditorKit, ActionMap] author: aterai pubdate: 2005-07-18 description: JTextFieldへのコピー、貼り付け、切り取りを禁止します。 image: https://lh6.googleusercontent.com/_9Z4BYR88imo/TQTHX8kSixI/AAAAAAAAARE/cRSBUI5TJWo/s800/ActionMap.png

概要

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

サンプルコード

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();
  }
};

参考リンク

コメント