实验要求:
项目一:文件及选择
目的:了解文件对话框的使用方法,熟悉GUI中事件驱动的核心步骤。
1. 阅读博文 “JFileChooser (Java Swing提供的文件选择对话框)”,了解博文大意。
2. 在IDE中输入(非复制、粘贴)博文中的代码,调试并运行。
3. 在上述界面中,增加如下控件:
JLabel,显示文本为“所选文件or文件夹:”;
JTextField,当选择了文件or文件夹后,显示所选择的文件or文件夹。
4. 完成上述功能。
根据实验要求再次敲打代码进去验证学习,代码和实图如下。
JFileChooser程序:
import java.awt.FlowLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.io.File;
import javax.swing.JButton;
import javax.swing.JFileChooser;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JTextField;
public class FileChooser extends JFrame implements ActionListener{
/**
*
*/
private static final long serialVersionUID = 1L;
JButton open=null;
JTextField jtfPath = null;
JLabel j1=null;
JTextField jtfPath1=null;
public static void main(String[] args) {
new FileChooser();
}
public FileChooser(){
this.setLayout(new FlowLayout());
// 按钮初始化
open=new JButton("open");
// 添加监听
open.addActionListener(this);
// 把按钮添加到JFrame容器中
this.add(open);
// 添加文本框控件
jtfPath = new JTextField("选择的文件",50);
jtfPath.setEditable(false); // 不可编辑
jtfPath.setHorizontalAlignment(JTextField.CENTER); // 居中
this.add(jtfPath);
// 设置JFrame的大小,可显示,默认关闭按钮
this.setBounds(400, 200, 700, 500);
this.setVisible(true);
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
JLabel j1=new JLabel("选择文件or文件夹");
j1.setBounds(10,100,43,33);
this.add(j1);
jtfPath1 = new JTextField("选择的文件or文件夹");
jtfPath1.setEditable(false);
jtfPath1.setHorizontalAlignment(JTextField.CENTER);
this.add(jtfPath1);
}
@Override
public void actionPerformed(ActionEvent e) {
// TODO Auto-generated method stub
JFileChooser jfc=new JFileChooser();
jfc.setFileSelectionMode(JFileChooser.FILES_AND_DIRECTORIES );
jfc.showDialog(new JLabel(), "选择");
File file=jfc.getSelectedFile();
if(file.isDirectory()){
System.out.println("文件夹:"+file.getAbsolutePath());
}else if(file.isFile()){
System.out.println("文件:"+file.getAbsolutePath());
}
System.out.println(jfc.getSelectedFile().getName());
// 把文件路径显示在文本框中
jtfPath.setText(file.getAbsolutePath());
}
}
<img src="https://img-blog.csdn.net/20150629112110167?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvdTAxMzkxNDM5Ng==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" alt="" />