📄 ch9_47.java
字号:
import javax.swing.*;
import java.awt.event.*;
import java.io.File;
import javax.swing.filechooser.FileFilter;
public class ch9_47 extends JFrame implements ActionListener{
JTextField jt;
public ch9_47() {
super("测试文件选择");
setBounds(20,20,500,300);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
public static void main(String[] args) {
ch9_47 f = new ch9_47();
f.getContentPane().setLayout(null);
JButton jb=new JButton("选择文件");
jb.setBounds(20,20,100,50);
jb.addActionListener(f);
f.jt=new JTextField();
f.jt.setBounds(130,20,300,50);
f.getContentPane().add(jb);
f.getContentPane().add(f.jt);
f.setVisible(true);
}
public void actionPerformed(ActionEvent e)
{
//没有指定打开的目录
JFileChooser jf=new JFileChooser();
//如果不指定默认打开路径,可使用以下方式
File fp=new File("d:\\javawork");
jf.setCurrentDirectory(fp);
//设置标题
jf.setDialogTitle("请选择一个文件");
//改变"打开"按钮上的文字
jf.setApproveButtonText("选择");
//设置过滤器, 其中JAVAFileFilter为自定义的过滤类
jf.addChoosableFileFilter(new JAVAFileFilter("class"));
jf.addChoosableFileFilter(new JAVAFileFilter("java"));
//文件对话框的打开 ,并返回值,其中open可以用save以保存的方式打开
int result=jf.showOpenDialog(this);
//取得文件对象
if(result==JFileChooser.APPROVE_OPTION)
{
File youfile=jf.getSelectedFile();
jt.setText(youfile.getPath() +"\n"+youfile.getName());
}
else if(result==JFileChooser.CANCEL_OPTION)
{
jt.setText("你没有选择任何文件");
}
}
}
class JAVAFileFilter extends FileFilter
{
String ext;
public JAVAFileFilter(String ext)
{
this.ext=ext;
}
public boolean accept(File mfile)
{
if(mfile.isDirectory())
return true;
String fileName=mfile.getName();
int index=fileName.lastIndexOf('.');
if(index > 0 && index < fileName.length()-1)
{
//表示文件名不为".***"与"***."之类型
String extension=fileName.substring(index+1).toLowerCase();
if(extension.equals(ext))
return true;
}
return false;
}
public String getDescription()
{
if(ext.equals("java"))
return "JAVA Source File(*.java)";
if(ext.equals("class"))
return "JAVA Class File(*.class)";
return "";
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -