こんにちは。
現在、JOptionPaneを使って出したダイアログのボタンを
エンターキーで選択したときの処理についてこまっています。
「いいえ」のボタンをエンターキーで押すと、
なぜか「はい」を押したときと同じ処理をしてしまうのです。
これを防ぐには、どうすればよいでしょうか?
以下、ソースコードの一部です。
//「はい」「いいえ」の結果を受け取る変数を宣言
int sentaku = 1;
//ダイアログボックスを表示する処理
sentaku = JOptionPane.showConfirmDialog
(null, "本当にこのイベントを削除しますか?", "削除確認" ,0);
//上のダイアログボックスで選択された結果をコンソールに出します。
System.out.println("本当に削除しますか?(0:はい 1:いいえ)→"+sentaku);
//ここで、「いいえ」をエンターキーで押すと、sentakuが0を返してしまいます。
//スペースキーで押すと、sentakuは1を返してくれました。
No.3
- 回答日時:
以下の様に検証して見た所、問題なく判定できているようですが、何か勝手が違いますか?
JDKは1.6.0_20です。
※インデントが消えて見づらいですね。gooはpreタグぐらいは使えるようにするべきだと思う。。。
final JButton button = new JButton(new AbstractAction("test") {
@Override
public void actionPerformed(ActionEvent e) {
int sentaku =
JOptionPane.showConfirmDialog(null, "本当にこのイベントを削除しますか?", "削除確認" ,0);
switch (sentaku ) {
case JOptionPane.OK_OPTION:
System.out.println("OK押下");
break;
case JOptionPane.NO_OPTION:
System.out.println("NO押下");
break;
case JOptionPane.CANCEL_OPTION:
System.out.println("CANCEL押下");
break;
default:
System.out.println("それ以外");
break;
}
}
});
ご回答ありがとうございます。
私のほうはeclipseでプログラムを作っているので、
以下のようにやってみたのですが…
だめでした。
このプログラムの提出期限が過ぎてしまったので、
せっかくですが、ここで締め切ろうと思います。
本当にありがとうございました。
private JButton getJButton7()
{
if (jButton7 == null)
{
jButton7 = new JButton();
jButton7.setBounds(new Rectangle(452, 44, 198, 24));
jButton7.setMnemonic(KeyEvent.VK_X);
jButton7.setText("このイベントを削除(X)");
jButton7.setFont(new Font("MS Pゴシック", Font.BOLD, 14));
jButton7.setVisible(false);
jButton7.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent e)
{//以下、いただいたご回答と一部同文
int sentaku =
JOptionPane.showConfirmDialog
(null, "本当にこのイベントを削除しますか?", "削除確認" ,0);
switch (sentaku )
{
case JOptionPane.OK_OPTION:
System.out.println("OK押下");
break;
case JOptionPane.NO_OPTION:
System.out.println("NO押下");
break;
case JOptionPane.CANCEL_OPTION:
System.out.println("CANCEL押下");
break;
default:
System.out.println("それ以外");
break;
}
}
});
No.2
- 回答日時:
ご回答ありがとうございました。
どうやらこれは、英語のサイトのようですね。
これからは英語の勉強もしなくてはいけませんね。
がんばります。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・街中で見かけて「グッときた人」の思い出
- ・「一気に最後まで読んだ」本、教えて下さい!
- ・幼稚園時代「何組」でしたか?
- ・激凹みから立ち直る方法
- ・1つだけ過去を変えられるとしたら?
- ・【あるあるbot連動企画】あるあるbotに投稿したけど採用されなかったあるある募集
- ・【あるあるbot連動企画】フォロワー20万人のアカウントであなたのあるあるを披露してみませんか?
- ・映画のエンドロール観る派?観ない派?
- ・海外旅行から帰ってきたら、まず何を食べる?
- ・誕生日にもらった意外なもの
- ・天使と悪魔選手権
- ・ちょっと先の未来クイズ第2問
- ・【大喜利】【投稿~9/7】 ロボットの住む世界で流行ってる罰ゲームとは?
- ・推しミネラルウォーターはありますか?
- ・都道府県穴埋めゲーム
- ・この人頭いいなと思ったエピソード
- ・準・究極の選択
- ・ゆるやかでぃべーと タイムマシンを破壊すべきか。
- ・歩いた自慢大会
- ・許せない心理テスト
- ・字面がカッコいい英単語
- ・これ何て呼びますか Part2
- ・人生で一番思い出に残ってる靴
- ・ゆるやかでぃべーと すべての高校生はアルバイトをするべきだ。
- ・初めて自分の家と他人の家が違う、と意識した時
- ・単二電池
- ・チョコミントアイス
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
DataGridViewのチェックボック...
-
SPREADでカーソルの位置を1行目...
-
VBAで一時中断したプログラムの...
-
GridViewの項目編集(初歩)
-
初期状態に戻す方法
-
VBのこのコードの意味を教えて...
-
クリックボタン(onclick)の配置...
-
Eclipseでクリーンが出来ない
-
JSPでボタンを押したら、文字が...
-
JavaでTABキーヒットを認識する...
-
エクセルにカウンターを設置したい
-
asp.net メッセージボックス表...
-
C# VBAで言うexit subについて
-
NetScapeで、テキストボックス...
-
最大化ボタンと最小化ボタンを...
-
ASP.NET2.0 TreeView チェック...
-
ひとつの検索窓で複数の検索サ...
-
Page_Load時にボタンクリックイ...
-
c# 文字列の最後から1文字削除...
-
WEBページ上に[Ctrl]+[F5]を割...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
c# 文字列の最後から1文字削除...
-
DataGridViewのチェックボック...
-
VBAで一時中断したプログラムの...
-
Fancyboxのiframe内に閉じるボタン
-
Eclipseでクリーンが出来ない
-
グリッドビューでのチェックボ...
-
Ctrlキーを押しながらのダブル...
-
SPREADでカーソルの位置を1行目...
-
VBのこのコードの意味を教えて...
-
ブラウザの×ボタン(閉じるボタ...
-
EXCEL2010でセルが編集中かを判...
-
IEの閉じるボタンを消す方法
-
メール添付されたPDFファイルが...
-
Page_Load時にボタンクリックイ...
-
クリック連打ソフト作成
-
CheckBoxをボタン形式にして押...
-
VC++ MFC CListCtrlで、ボタン...
-
今更、VBAでRPA、キーボード操...
-
Webブラウザの閉じるボタン無効...
-
JSPでメッセージボックスを表示...
おすすめ情報