天天看点

11.7 对话框

11.7.1 选项对话框

创建选项对话框的步骤:

1.选择对话框的类型(消息,确认,选项,输入)

2.选择图标(错误,信息,警告,问题,无或者自定义)

3.选择消息(字符串,图标,自定义组件,或者他们的集合)

4.对于确认对话框,选择选项类型(默认,Yes/No,Yes/No/Cancel,OK/Cancel)

5.对于选项对话框。选择选项(字符串、图标,自定义组件)

6.对于输入对话框,选择文本框或是组合框

7.调用JOptionPane API中相应的方法

example:

int selection = JOptionPane.showConfirmDialog(parent,"Message","Title",JOptionPane.OK_CANCEL_OPTION,JOptionPane.QUESTION_MESSAGE);
if(selection == JOptionPane.OK_OPTION);
           

11.7.2 创建对话框

要想实现一个对话框,需要扩展JDialog类。这与应用程序窗口需要扩展JFrame的过程完全一样。具体过程如下:

1.在对话框构造器中,调用超类JDialog的构造器

2.添加对话框的用户界面组件

3.添加事件处理器

4.设置对话框的大小

example:

public class AboutDialog extends JDialog {
    public AboutDialog(JFrame owner){
        super(owner,"dialog test",true);
        add(new JLabel("<html><h1><i>Core Java</i></h1><hr>By Cay Horstmann</html>"), BorderLayout.CENTER);
        JPanel panel = new JPanel();
        JButton ok = new JButton("OK");

        ok.addActionListener(new ActionListener() {
            @Override
            public void actionPerformed(ActionEvent e) {
                ok.setVisible(false);
            }
        });

        panel.add(ok);

        add(panel,BorderLayout.SOUTH);
        setSize(250,150);
    }

}

           

11.7.3 数据交换

11.7.4 文件对话框

建立文件对话框并获取用户选择信息的步骤

1.建立一个JFileChooser对象。与JDialog类的构造器不同,不需要指定父组件,可以在多个窗体中重用一个文件选择器。例如

JFileChooser chooser = new JFileChooser();

2.调用setCurrentDirectory方法设置目录

例如要使用当前的工作目录:

chooser.setCurrentDirectory(new File("."));

3.如果有一个希望用户选择的默认文件名,可以使用setSelectedFile方法指定:

chooser.setSelectedFile(new File(filename));

4.如果允许用户在对话框中选择多个文件,需要调用setMultiSelectionEnabled方法。

chooser.setMultiSelectionEnabled(true);

5.如果想让对话框只显示某种特定类型的文件,需要设置文件过滤器。

6.在默认情况下,用户只能在文件选择器中选择文件。如果希望用户选择目录,需要使用chooser.setFileSelectionMode方法

chooser.setFileSelectionMode(JFileChooser.FILES_ONLY);
chooser.setFileSelectionMode(JFileChooser.DIRECTORIES_ONLY);
chooser.setFileSelectionMode(JFileChooser.FILES_AND_DIRECTORIES);
           

7.调用

int result = chooser.showOpenDialog(parent);

int result = chooser.showSaveDialog(parent);

显示对话框

也可以使用

int result = chooser.showDialog(parent,"Select");

仅当用户确认、取消或者关闭对话框时这些调用才返回。返回值可以是JFileChooser.APPROVE_OPTION;JFileChooser.CANCEL_OPTION;JFileChooser.ERROR_OPTION;

8.调用getSelectedFile()或者chooser.getSelectedFiles()来获取用户选择的一个或多个文件,前者返回一个文件对象,后者返回一个文件对象数组。