【目的】
1. 了解文件对话框的使用方法,熟悉GUI中事件驱动的核心步骤。
2. 了解GUI的图像显示的常用方式。
3. 完成实验六的内容。
【目标】
项目一:文件及选择
项目二:图片显示
项目三:实验六 图形用户界面
【方法与步骤】
1. 了解文件对话框的使用方法,熟悉GUI中事件驱动的核心步骤。
JFileChooser类中常用的构造方法:
JFileChooser() 构造一个指向用户默认目录的 JFileChooser。
JFileChooser(File currentDirectory) 使用给定的 File 作为路径来构造一个 JFileChooser。
setFileSelectionMode(int mode)设置 JFileChooser, 以允许用户只选择文件、只选择目录,或者可选择文件和目录。
mode参数:
FILES_AND_DIRECTORIES 指示显示文件和目录。
FILES_ONLY 指示仅显示文件。
DIRECTORIES_ONLY 指示仅显示目录。
showDialog(Component parent,String approveButtonText) 弹出具有自定义 approve 按钮的自定义文件选择器对话框。
showOpenDialog(Component parent) 弹出一个 "Open File" 文件选择器对话框。
showSaveDialog(Component parent) 弹出一个 "Save File" 文件选择器对话框。
setMultiSelectionEnabled(boolean b) 设置文件选择器,以允许选择多个文件。
getSelectedFiles() 如果将文件选择器设置为允许选择多个文件,则返回选中文件的列表(File[])。
getSelectedFile() 返回选中的文件。
老师介绍的一篇博文:http://blog.csdn.net/liang5630/article/details/25651491,上面有“JFileChooser (Java Swing提供的文件选择对话框)”,的一些方法。
2. GUI事件模式驱动的步骤:
1)新建一个组件(如JButton)。
2)将该组件添加到相应的面板(如JPanel)。
3)注册监听器以监听事件源产生的事件(如通过ActionListener来响应用户点击按钮)。
4)定义处理事件的方法(如在ActionListener中的actionPerformed中定义相应方法)。
3. GUI的图像显示的常用方式
image = ImageIO.read(file); //读入图像到image
void setIcon(Icon image) //定义JLable将要显示的图标
4. 结合JFileChooser进行简单编程
老师给了我们一些代码,老师要求我们修改这些代码,实现以下功能。打开文件,实现显示下面的画面。我刚开始不理解老师的用意,一直不懂那个JFileChooser的使用,因为做“猜猜看”的游戏,需要用到这个功能,我开始研究,我就去理解了一下以下的代码,实现了打开文件,选择文件的功能。我慢慢的理解了JFileChooser选择文件,选择目录的路径要求。
【实验代码】
package com.mxl.swing;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JTextField;
import javax.swing.JFileChooser;
public class JFileChooserTest {
public static final int APPROVE_OPTION = 0;
private JLabel label=new JLabel("所选文件路径");
private JTextField jtf=new JTextField(25);
private JButton button=new JButton("浏览");
public JFileChooserTest(){
JFrame jf=new JFrame("Java GUI");
JPanel panel=new JPanel();
panel.add(label);
panel.add(jtf);
panel.add(button);
jf.add(panel);
jf.pack();
jf.setVisible(true);
jf.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
button.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
JFileChooser fc=new JFileChooser("E:\\");
int val=fc.showOpenDialog(null);
//.showDialog(new JLabel(), "选择");
if(val==fc.APPROVE_OPTION){
jtf.setText(fc.getSelectedFile().toString());
}else{
jtf.setText("未选择文件");
}
}
});
}
}
【实验结果】