实验22 Java Swing的对话框

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 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);

相关文档
最新文档