此文主要写了Java中常见的3种对话框,消息对话框,输入对话框 和 确认对话框。
import java.awt.Font;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.Scanner;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JTextArea;
public class DialogDemo extends JFrame implements ActionListener{
JButton but1,but2,but3;
JTextArea area;
JPanel panel;
Font f = new Font("宋体", Font.BOLD, 25);
public DialogDemo(String title) {
panel = new JPanel(); // 默认的流式布局
but1 = new JButton("消息对话框");
but2 = new JButton("输入对话框");
but3 = new JButton("确认对话框");
area = new JTextArea(6,40);
but1.setFont(f);
but2.setFont(f);
but3.setFont(f);
but1.addActionListener(this);
but2.addActionListener(this);
but3.addActionListener(this);
panel.add(but1);
panel.add(but2);
panel.add(but3);
panel.add(new JScrollPane(area)); // 滚动面板
add(panel);
setTitle(title);
setBounds(300, 350, 550, 260);
setResizable(false);
setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
setVisible(true);
}
public static void main(String[] args) {
DialogDemo win = new DialogDemo("对话框");
}
@Override
public void actionPerformed(ActionEvent e) {
String str = e.getActionCommand();
if(str.equals("消息对话框")) {
//弹出一个消息对话框
JOptionPane.showMessageDialog(but1,"欢迎使用消息对话框","消息对话框",JOptionPane.WARNING_MESSAGE);
//第一个参数,相对于哪个中心对齐;第二个,提示内容;第三个,标题;第四个 提示类型(共5种)
}else if(str.equals("输入对话框")){
//弹出一个输入对话框
String s = JOptionPane.showInputDialog(but2,"输入数字,用空格分隔","输入对话框",JOptionPane.PLAIN_MESSAGE);
double sum = 0;
int k = 0;
if(s != null) {
Scanner scan = new Scanner(s);
while(scan.hasNext()) {
try {
double num = scan.nextDouble();
sum += num;
if(k==0) {
//area.append("\n");
area.append("" + num);
}else {
area.append("+" + num);
}
k++;
}catch(Exception exc){
scan.next();
}
}
}
area.append("=" + sum);
}
else if(str.equals("确认对话框")) {
//弹出一个确认对话框
int chose = JOptionPane.showConfirmDialog(but3, "确认是否正确","确认对话框",JOptionPane.YES_NO_OPTION);// 三种选择,最后一个参数
if(chose == JOptionPane.YES_OPTION) {
area.setText(null);
area.append("用户点击了\"是\"按钮");
}
else if (chose == JOptionPane.NO_OPTION){
area.setText(null);
area.append("用户点击了\"否\"按钮");
}
}
}
}
运行效果如下图所示:
showMessageDialog中的参数类型,如下图所示:
代码中所提到的消息对话框中的5种提示类型,如上图所示,这这里不详细叙述,感兴趣的可以自己在下面进行测试;
showInputDialog中的参数类型,如上图所示:
showConfirmDialog中的参数类型,返回类型为字符串(可参考代码中的样例)如上图所示:
确认对话框中最后一个参数的类型,以及方法返回,注意这里返回的是一个整数类型,如上图所示。