[はい]または[いいえ]ボタンでメッセージを作成しようとしています。次に、ユーザーが[はい]または[いいえ]をクリックしたかどうかに依存する特定のメッセージを含むウィンドウが表示されます。
ここに私のコードがあります:
public class test{
public static void main(String[] args){
//default icon, custom title
int n = JOptionPane.showConfirmDialog(
null,
"Would you like green eggs and ham?",
"An Inane Question",
JOptionPane.YES_NO_OPTION);
if(true){
JOptionPane.showMessageDialog(null, "HELLO");
}
else {
JOptionPane.showMessageDialog(null, "GOODBYE");
}
System.exit(0);
}
}
現在、[はい]または[いいえ]を押すかどうかに関係なく、HELLOが出力されます。
「if(true)」は常にtrueであり、他に到達することはありません。正しく動作させるには、次を実行する必要があります。
int reply = JOptionPane.showConfirmDialog(null, message, title, JOptionPane.YES_NO_OPTION);
if (reply == JOptionPane.YES_OPTION) {
JOptionPane.showMessageDialog(null, "HELLO");
}
else {
JOptionPane.showMessageDialog(null, "GOODBYE");
System.exit(0);
}
常に真の状態をチェックしているため、メッセージは常に表示されます。
if (true)
ステートメントをif ( n == JOptionPane.YES_OPTION)
に置き換える必要があります
ShowXxxDialogメソッドの1つが整数を返す場合、可能な値は次のとおりです。
YES_OPTION NO_OPTION CANCEL_OPTION OK_OPTION CLOSED_OPTION
から ここ
これで修正できます:
if(n == JOptionPane.YES_OPTION)
{
JOptionPane.showMessageDialog(null, "HELLO");
}
else
{
JOptionPane.showMessageDialog(null, "GOODBYE");
}
これはもっと簡単にできます:
int test = JOptionPane.showConfirmDialog(null, "Would you like green eggs and ham?", "An insane question!");
switch(test) {
case 0: JOptionPane.showMessageDialog(null, "HELLO!"); //Yes option
case 1: JOptionPane.showMessageDialog(null, "GOODBYE!"); //No option
case 2: JOptionPane.showMessageDialog(null, "GOODBYE!"); //Cancel option
}
YesおよびNoメッセージのコード
int n = JOptionPane.showConfirmDialog(
null,
"sample question?!" ,
"",
JOptionPane.YES_NO_OPTION);
if(n == JOptionPane.YES_OPTION)
{
JOptionPane.showMessageDialog(null, "Opening...");
}
else
{
JOptionPane.showMessageDialog(null, "Goodbye");
System.exit(0);
if(true)
を書いているので、常に「Hello」メッセージが表示されます。
返されるn
の値に基づいて決定する必要があります。
それがどのように機能するかをよりよく理解するために!
int n = JOptionPane.showConfirmDialog(null, "Yes No Cancel", "YesNoCancel", JOptionPane.YES_NO_CANCEL_OPTION);
if(n == 0)
{
JOptionPane.showConfirmDialog(null, "You pressed YES\n"+"Pressed value is = "+n);
}
else if(n == 1)
{
JOptionPane.showConfirmDialog(null, "You pressed NO\n"+"Pressed value is = "+n);
}
else if (n == 2)
{
JOptionPane.showConfirmDialog(null, "You pressed CANCEL\n"+"Pressed value is = "+n);
}
else if (n == -1)
{
JOptionPane.showConfirmDialog(null, "You pressed X\n"+"Pressed value is = "+n);
}
OR
int n = JOptionPane.showConfirmDialog(null, "Yes No Cancel", "YesNoCancel", JOptionPane.YES_NO_CANCEL_OPTION);
switch (n) {
case 0:
JOptionPane.showConfirmDialog(null, "You pressed YES\n"+"Pressed value is = "+n);
break;
case 1:
JOptionPane.showConfirmDialog(null, "You pressed NO\n"+"Pressed value is = "+n);
break;
case 2:
JOptionPane.showConfirmDialog(null, "You pressed CANCEL\n"+"Pressed value is = "+n);
break;
case -1:
JOptionPane.showConfirmDialog(null, "You pressed X\n"+"Pressed value is = "+n);
break;
default:
break;
}
これらの線に沿って何か....
//default icon, custom title
int n = JOptionPane.showConfirmDialog(null,"Would you like green eggs and ham?","An Inane Question",JOptionPane.YES_NO_OPTION);
String result = "?";
switch (n) {
case JOptionPane.YES_OPTION:
result = "YES";
break;
case JOptionPane.NO_OPTION:
result = "NO";
break;
default:
;
}
System.out.println("Replace? " + result);
DialogDemo もご覧ください。