Swing/ActionMap のバックアップの現在との差分(No.9)
TITLE:JTextFieldでコピー、貼り付けなどを禁止
JTextFieldでコピー、貼り付けなどを禁止
編集者:Terai Atsuhiro~
作成日:2005-07-18
更新日:2023-11-24 (金) 16:02:25
概要
JTextField
へのコピー、貼り付け、切り取りを禁止します。
Screenshot
Advertisement
概要
JTextFieldへのコピー、貼り付け、切り取りを禁止します。#screenshot
サンプルコード
#spanend
#spanadd
* サンプルコード [#sourcecode]
#spanend
#spanadd
#code(link){{
#spanend
Action beep = new DefaultEditorKit.BeepAction();
ActionMap am = field.getActionMap();
#spandel
am.put(DefaultEditorKit.cutAction, beep);
#spanend
#spandel
am.put(DefaultEditorKit.copyAction, beep);
#spanend
#spanadd
am.put(DefaultEditorKit.cutAction, beep);
#spanend
#spanadd
am.put(DefaultEditorKit.copyAction, beep);
#spanend
am.put(DefaultEditorKit.pasteAction, beep);
- &jnlp;
- &jar;
- &zip;
解説
上記のサンプルでは、JTextFieldのActionMapを、コピーなどの変わりにDefaultEditorKit.BeepAction()でビープ音を鳴らすように変更しています。解説
上記のサンプルでは、JTextField
のActionMap
からコピーなどのAction
を取得し、これらをビープ音を鳴らすDefaultEditorKit.BeepAction()
に置き換えています。
以下のようにcopyメソッドなどをオーバーライドする方法もあります。
- 以下のように
copy
メソッドなどをオーバーライドする方法もあるJTextField field = new JTextField() { public void copy() { java.awt.Toolkit.getDefaultToolkit().beep(); @Override public void copy() { UIManager.getLookAndFeel().provideErrorFeedback(this); // Toolkit.getDefaultToolkit().beep(); } };