下面的例子综合了JOptionPane的四种按钮,并对各个按钮的单击事件做了处理。
[例8-11]
import
java.awt.*;
import
java.awt.event.*;
import
javax.swing.*;
class JOptionPaneTest extends JFrame{
private JButton btn1 = new JButton("消息对话框");
private JButton btn2 = new JButton("确认对话框");
private JButton btn3 = new JButton("输入对话框");
private JButton btn4 = new JButton("选项对话框");
public JOptionPaneTest(String title){
super(title);
Container contentPane = this.getContentPane();
contentPane.setLayout(new FlowLayout(5));
//添加按钮
contentPane.add(btn1);
contentPane.add(btn2);
contentPane.add(btn3);
contentPane.add(btn4);
pack();
setVisible(true);
//
注册监听器
btn1.addActionListener(new MyActionListener());
btn2.addActionListener(new MyActionListener());
btn3.addActionListener(new MyActionListener());
btn4.addActionListener(new MyActionListener());
}
//监听器
private class MyActionListener implements ActionListener{
public void actionPerformed(ActionEvent e) {
int n;//用于接收对话框的int类型返回值
String str = new String();//用于接收对话框的String类型返回值
//处理"消息对话框"按钮
if(e.getActionCommand().equals("消息对话框")){
//显示一个MessageDialog
JOptionPane.showMessageDialog(null, "这是一个消息对话框吗?");
}
if(e.getActionCommand().equals("确认对话框")){
//显示一个ConfirmDialog,并用变量n接收其返回值
n=JOptionPane.showConfirmDialog(null, "你确认这是一个确认对话框吗?","对话框title",JOptionPane.YES_NO_OPTION);
//判断用户点击了哪个按钮
switch(n){
case 0:
JOptionPane.showMessageDialog(null, "您点击了按钮——是");
break;
case 1:
JOptionPane.showMessageDialog(null, "您点击了按钮——否");
break;
case -1:
JOptionPane.showMessageDialog(null, "您点击了退出按钮");
break;
}
}
if(e.getActionCommand().equals("输入对话框")){
//显示一个InputDialog,并用变量str接收其返回值
str =(String)JOptionPane.showInputDialog(null ,"请选择城市:","对话框title",JOptionPane.INFORMATION_MESSAGE,null,new String[]{"北京","上海","广州"},"北京");
//判断用户选择了ComboBox的哪项
if(str != null){
JOptionPane.showMessageDialog(null, "您选择了"+str);
}
}
if(e.getActionCommand().equals("选项对话框")){
//显示一个OptionDialog,并用变量n接收其返回值
n = JOptionPane.showOptionDialog(null, "选项对话框", "对话框title", JOptionPane.YES_NO_OPTION, JOptionPane.INFORMATION_MESSAGE, null,new String[]{"自定义1","自定义2","自定义3"},"自定义1");
//判断用户点击了 哪个按钮
switch(n){
case 0:
JOptionPane.showMessageDialog(null, "您点击了按钮——自定义1");
break;
case 1:
JOptionPane.showMessageDialog(null, "您点击了按钮——自定义2");
break;
case 2:
JOptionPane.showMessageDialog(null, "您点击了按钮——自定义3");
break;
case -1:
JOptionPane.showMessageDialog(null, "您点击了退出按钮");
break;
}
}
}
}
}
public class Test8_11 {
public static void main(String[] args) {
new JOptionPaneTest("JOptionPane四种对话框形式测试");
}
}
该程序是对四种按钮的各个单击事件进行处理,所以运行结果较多,这里不再一一列举,请读者自行运行程序查看结果。
#g_kclist{font-size:12px;width:570px;float:none; margin-top:5px; clear:right}#g_kclist a{color:#000; text-decoration:none}#g_kclist h2{margin:0px;padding:0px;font-size:14px; text-align:center;background:url(
) no-repeat;line-height:31px;color:#fff}#g_kclist table{line-height:25px;background:#B0DA90;margin-top:8px}#g_kclist table td{ text-align:center;background:#fff}#g_kclist table td.td1 a{color:#f00}#g_kclist table th{background:#F2F7ED;color:#525F46}
