Swing/ActionMap のバックアップの現在との差分(No.11)
TITLE:JTextFieldでコピー、貼り付けなどを禁止
JTextFieldでコピー、貼り付けなどを禁止
Posted by terai at 2005-07-18- category: swing folder: ActionMap title: JTextFieldでコピー、貼り付けなどを禁止 tags: [JTextField, DefaultEditorKit, ActionMap] author: aterai pubdate: 2005-07-18T15:40:10+09:00 description: JTextFieldへのコピー、貼り付け、切り取りを禁止します。 image:
概要
JTextField
へのコピー、貼り付け、切り取りを禁止します。
Screenshot
Advertisement
概要
JTextFieldへのコピー、貼り付け、切り取りを禁止します。- &jnlp;
- &jar;
- &zip;
#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);
解説
上記のサンプルでは、JTextFieldのActionMapから、コピーなどのActionを取得し、これらをビープ音を鳴らすDefaultEditorKit.BeepAction()に置き換えています。解説
上記のサンプルでは、JTextField
のActionMap
からコピーなどのAction
を取得し、これらをビープ音を鳴らすDefaultEditorKit.BeepAction()
に置き換えています。
以下のようにcopyメソッドなどをオーバーライドする方法もあります。
- 以下のように
copy
メソッドなどをオーバーライドする方法もあるJTextField field = new JTextField() { public void copy() { @Override public void copy() { UIManager.getLookAndFeel().provideErrorFeedback(this); //java.awt.Toolkit.getDefaultToolkit().beep(); // Toolkit.getDefaultToolkit().beep(); } };