实验22 Java Swing的对话框
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
实验22 Java Swing的对话框
1、主要教学目标
(1)掌握Java的Java Swing的对话框组件;
(2)理解Java Swing的无模式对话框和有模式对话框;
(3)理解对话框类的主要方法。
2、重点内容
掌握对话框组件类常见方法和定义。
讲授内容
一、J ava Swing的对话框
对话窗口、对话框是大多数GUI应用程序中不可或缺的一部分,通常,对话被定义为两个或两个以上的人之间的对话。在计算机应用程序中的对话框是用来向应用程序通话的窗口。
对话框用于输入数据,修改数据,更改应用程序设置等。Java的Swing工具包,可以创建两种对话框,分别是自定义对话框和标准对话框。自定义对话框由程序员创建的,主要是基于JDialog类。标准对话框包括颜色选择器或文件选择器,这些对话框像显示文本,接收输入,加载和保存文件。
有两种基本类型的对话框。模式和无模式。模式对话框阻塞顶级窗口的输入。无模式对话框允许在其他窗口上进行输入。对话框使用视情况而定。通常打开文件对话框是一个模式对话框。在选择要打开的文件,其他的操作是被禁止的。无模式对话框是一个查找文本对话框,可以方便光标在文本控件内的移动。
二、一个简单的自定义对话框
创建一个简单的自定义对话框。
三、消息框
消息框提供信息给用户。
显示了错误,问题,警告和信息消息框。
使用一个GridLayout的布局管理器来组织按钮,弹出消息框。
要创建一个消息框,我们称之为showMessageDialog 的静态方法的JOptionPane类。我们提供的组件名称,消息文本,标题和消息类型。消息类型是由我们选择的常数决定。可用常数为:ERROR_MESSAGE
WARNING_MESSAGE
QUESTION_MESSAGE
INFORMATION_MESSAGE
图2:问题的消息框
四、文件选择器
文件选择器是从文件系统中选择一个文件的标准对话框。
import java.awt.BorderLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.io.BufferedReader;
import java.io.File;
import java.io.FileReader;
import java.io.IOException;
import javax.swing.BorderFactory;
import javax.swing.ImageIcon;
import javax.swing.JButton;
import javax.swing.JFileChooser;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JTextArea;
import javax.swing.JToolBar;
import javax.swing.SwingUtilities;
import javax.swing.filechooser.FileFilter;
//import javax.swing.filechooser.FileNameExtensionFilter;
class FileChooserDialog extends JFrame {
private JPanel panel;
private JTextArea area;
public FileChooserDialog() {
initUI();
}
public final void initUI() {
panel = new JPanel();
panel.setLayout(new BorderLayout());
ImageIcon open = new ImageIcon("open.png");
JToolBar toolbar = new JToolBar();
JButton openb = new JButton(open);
openb.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent event) {
JFileChooser fileopen = new JFileChooser();
// FileFilter filter = new FileNameExtensionFilter("c files", "c");
// fileopen.addChoosableFileFilter(filter);
int ret = fileopen.showDialog(panel, "Open file");
if (ret == JFileChooser.APPROVE_OPTION) {
File file = fileopen.getSelectedFile();
String text = readFile(file);
area.setText(text);
}
}
});
toolbar.add(openb);
area = new JTextArea();
area.setBorder(BorderFactory.createEmptyBorder(10, 10, 10, 10));
JScrollPane pane = new JScrollPane();
pane.getViewport().add(area);
panel.setBorder(BorderFactory.createEmptyBorder(10, 10, 10, 10));
panel.add(pane);