JTextField入力・編集中に、マウスをダブルクリックすると、
デフォルトで単語の選択状態になりますが、これを無効にする
方法を教えてください。
以上、よろしくお願いいたします。

A 回答 (2件)

No.1です。



swingのソースを読むと、単語選択のイベント処理をするときに、
DefaultEditorKit.selectWordActionをActionMapから
取得して実行しています。

ところが、取得したアクションがnullの場合
何もしないのではなく、内部的に
DefaultEditorKit.SelectWordActionインスタンスを
作成して実行しています。
そのため、ActionMapから削除しただけでは駄目です。

何もしないのであれば、次のような何もしないアクションを
作成して渡せばよいと思います。

static final Action NOOP=new AbstractAction(){
@Override public void actionPerformed(ActionEvent e){}
};

am.put(DefaultEditorKit.selectWordAction,NOOP);
    • good
    • 0
この回答へのお礼

ありがとうございました。

お礼日時:2009/06/12 07:10

ActionMapで単語選択アクションを禁止すれば無効になると思います。



JTextField field=new JTextField();

Action beep=new DefaultEditorKit.BeepAction();
ActionMap am=field.getActionMap();

am.put(DefaultEditorKit.selectWordAction,beep);

この回答への補足

ご回答ありがとうございました。

単純にアクションを削除することはできないのでしょうか?
field.getActionMap().delete(DefaultEditorKit.selectWordAction);
で、デリートできないのはなぜでしょうか?

補足日時:2009/05/31 21:48
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!


人気Q&Aランキング

おすすめ情報