import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
class MDialog extends JFrame implements ActionListener
{
MDialog()
{
super("显示确认对话框");
setSize(200,200);
setVisible(true);
setLayout(new FlowLayout());
JButton jbtn=new JButton("退出");
add(jbtn);
jbtn.addActionListener(this);
}
public void actionPerformed(ActionEvent e)
{
String msg="你确认退出吗?";
int type=JOptionPane.YES_NO_OPTION; //什么意思
String title="确认对话框";
int choice=0; // 为什么要设置为0
choice=JOptionPane.showConfirmDialog(null,msg,title,type);
//为什么要choice= 而不是直接JO.show?
if(choice==0) //choice上面已经设为0了,这还IF干什么?
{
System.exit(0);
}
else System.out.println(choice);
}
}
public class a
{
public static void main(String [] args)
{
new MDialog();
}
}
String msg="你确认退出吗?";
int type=JOptionPane.YES_NO_OPTION; //什么意思 --相当于变量用于存储JOptionPane.YES_NO_OPTION的值(JOptionPane.YES_NO_OPTION是一个枚举值)
String title="确认对话框"; --后面需要用到的提示信息
int choice=0; // 为什么要设置为0 --局部变量初始化
choice=JOptionPane.showConfirmDialog(null,msg,title,type); --弹出确认对话框 将根据你的选择(yes/no)返回一个int值。 其实这里的type就是JOptionPane.YES_NO_OPTION。 他上面有一个变量去保存没必要,可以直接写在这里
//为什么要choice= 而不是直接JO.show?
if(choice==0) //choice上面已经设为0了,这还IF干什么?--现在用户选择了yes/no choice的值就根据选择的值而确定了。 选择yes返回0. 所以在这里判断其值是否为0 为0则应该退出程序
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
class MDialog extends JFrame implements ActionListener
{
MDialog()
{
super("显示确认对话框");
setSize(200,200);
setVisible(true);
setLayout(new FlowLayout());
JButton jbtn=new JButton("退出");
add(jbtn);
jbtn.addActionListener(this);
}
public void actionPerformed(ActionEvent e)
{
String msg="你确认退出吗?";
int type=JOptionPane.YES_NO_OPTION; //这个是定义你下面showConfirmDialog对话框的类型“YES_NO_OPTION”表示有两个按钮,一个是一个否
String title="确认对话框";
int choice=0; // 为什么要设置为0,在这是初始化你也可以不定义,但是一般int类型都初始化为0
choice=JOptionPane.showConfirmDialog(null,msg,title,type);
//为什么要choice= 而不是直接JO.show? ,这是为下面的判断赋值啊,你在下面也提及了如果不赋值给choice它一直是0下面的if语句不就没有意义了
if(choice==0) //choice上面已经设为0了,这还IF干什么?
{
System.exit(0);
}
else System.out.println(choice);
}
}
public class Test
{
public static void main(String [] args)
{
new MDialog();
}
}