JTextFieldでコピー、貼り付けなどを禁止

編集者:Terai Atsuhiro
作成日:2005-07-18
更新日:2023-11-24 (金) 16:02:25

概要

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

http://terai.xrea.jp/swing/actionmap/screenshot.png

サンプルコード

ActionMap am = field.getActionMap();
Action beep = new DefaultEditorKit.BeepAction();
am.put(DefaultEditorKit.cutAction,   beep);
am.put(DefaultEditorKit.copyAction,  beep);
am.put(DefaultEditorKit.pasteAction, beep);
field.setActionMap(am);

解説

上記のサンプルでは、JTextFieldのActionMapを、コピーなどの変わりにDefaultEditorKit.BeepAction()でビープ音をならすように変更しています。

以下のようにcopyメソッドなどをオーバーライドする方法もあります。

JTextField field = new JTextField() {
  public void copy() {
    java.awt.Toolkit.getDefaultToolkit().beep();
  }
};

コメント