
ロストフォーカスイベント時のその他のイベント(ボタンイベント)の中止方法
フィールドのロストフォーカスイベントで3文字以上入力していた場合に
エラーメッセージを表示する。
フィールドに4文字値を入力して、フォーカスをフィールドにあてたまま
ボタンを押下するとロストフォーカスイベントが走り、
同時にボタンイベントも発動してしまいます。
ロストフォーカスイベント時にエラーが発生している場合は、
ボタン押下処理を中止するようにしたいのですが、可能でしょうか?
検証は、Java1.6で行っています。
No.3ベストアンサー
- 回答日時:
JButtonにあるsetActionCommandを使用して、何が実行されたかコマンドを決める方法です。
イベントが発生した時、ActionEventオブジェクトからgetActionCommandを使用しコマンドを取得すれば、
どのボタンが押されたのか、唯のロストフォーカスなのか判断できるかなと。
ただ、この方法はメニューから実行、右クリックのコンテキストメニューから実行、ボタンから実行等をすべて同じ処理にしたい場合に使用する方法なので、イベントが違うとうまくいくかどうかちょっと検証が必要です。
この回答への補足
teketonさん 回答ありがとうございます。
ロストフォーカス、ボタン押下のイベント処理で共通処理が呼ばれている場合、
共通処理にて、ロストフォーカスイベントがボタン押下のイベントかを判断する方法と
理解しました。
ロストフォーカス時にエラーとなり、メッセージダイアログがでた時点で、ボタンの
イベントは中止(または、キャンセル)されることが望ましいと思っています。
上記の前提条件の場合は、どのようにするべきでしょうか?
java1.4の時は、
ロストフォーカス時にエラーとなり、メッセージダイアログがでた時点で、ボタンの
イベントは中止(または、キャンセル)されていたのですがね・・・。
なんで、Java1.6になったら、できなくなったのか・・・。 愚痴です。
No.2
- 回答日時:
同じ人ですが、他にはActionCommandを設定する、とか。
lost focusのイベントハンドラでボタンのアクションコマンドが設定されていれば、lost focusイベントをpassさせる。
例によって試したことはありません。
この回答への補足
teketonさん、2回も回答ありがとう御座います。
teketonさんのアドバイスを検討してみましたが、よくわかりませんでした。
よろしければ、もう少し詳細に教えて頂けませんか?
以上、宜しくお願い致します。
No.1
- 回答日時:
Swing?だったら、InputVerifierを使うと良さそう。
ただ、エラーメッセージの表示がダイアログのような、フォーカスを移す場合だとどうなるかは不明。
参考URL:http://docs.oracle.com/javase/jp/1.3/api/javax/s …
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
関連するQ&A
- 1 JSFでロストフォーカスイベント
- 2 ブラウザの×ボタン(閉じるボタン)押下時のイベントをひろいたい
- 3 ロストフォーカスしたフォーム部品の名称を渡したい。
- 4 ファイルのダウンロード時に、キャンセルボタンが押されたときのイベントがとりたい
- 5 ラジオボタンのチェックが外れた時に、イベントを発生させることはできますか?
- 6 フォーカスが親ウインドウから子ウィンドウに移る際のイベントは?
- 7 ブラウザの×(閉じる)ボタンのイベントを拾いたいのですが
- 8 テキストボックスでリターン(Enter)ボタンを押下し、イベントを発生させる
- 9 チェックされたラジオボタンにフォーカスを移動したい
- 10 JavaScript:現在フォーカスの次にフォーカスを移動したい
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
人気Q&Aランキング
-
4
ブラウザの×ボタン(閉じるボタ...
-
5
CheckBoxをボタン形式にして押...
-
6
IEの閉じるボタンを消す方法
-
7
asp.net メッセージボックス表...
-
8
メール添付されたPDFファイルが...
-
9
動画を再生中/一時停止中にボタ...
-
10
javascriptでボタンが押下され...
-
11
グリッドビューでのチェックボ...
-
12
【C#】 : WindowsProgramming ...
-
13
SPREADでカーソルの位置を1行目...
-
14
初期状態に戻す方法
-
15
ボタンの形
-
16
GridViewの項目編集(初歩)
-
17
コンボボックスのインデックス...
-
18
JOptionPaneの「いいえ」をEnterで
-
19
Visual C#でストップウォッチ機...
-
20
クリック連打ソフト作成
おすすめ情報