关于菜单项中文件选择框的事件处理

练习JFileChooser

class MenuListener implements ActionListener {

public void actionPerformed(ActionEvent e) {
	String s = e.getActionCommand(); //得到当前点击的菜单项
	JFileChooser chooser = new JFileChooser(); //实例化一个文件选择框
	Txt_file_filter filter = new Txt_file_filter();	 //实例化过滤器
	chooser.setFileFilter(filter);	  //添加过滤器
			
	if(s.equals("打开")) {
		int result = chooser.showOpenDialog(null);
		if(result == JFileChooser.APPROVE_OPTION) {
//如果是选择文件选择框的打开按钮
		File selectFile = chooser.getSelectedFile();
//得到当前选中的文件	
		Runtime runtime = Runtime.getRuntime();
		String filePath = selectFile.getAbsolutePath();
//得到当前选中的文件路径
	try {
		System.out.println(selectFile.getAbsolutePath());
		runtime.exec("cmd /c start " + filePath); //调用CMD控制台打开文件
	     } catch (IOException e1) {
						e1.printStackTrace();
				       }
				}
				
			}
	if(s.equals("另存为")) {	//如果选择另存为菜单项则打开一个保存框
				
				chooser.showSaveDialog(null);
			}
		}
//创建过滤器,过滤为.txt类型
	class Txt_file_filter extends FileFilter {
		public boolean accept(File f) {
				
			if(f != null) {
				if( f.isDirectory())  return true;
				else {
					String filename = f.getName();
					int i = filename.lastIndexOf('.');
					if(i>0 && i<filename.length()-1 ) {	
                                 String s = filename.substring(i+1).toLowerCase();
						return s.equals("txt");
					} 
						else return false;
				}
			}				
			return false;
		}

		public String getDescription() {
			return "文本文件(*.txt)"; //默认显示在选择框中的为.TXT类型
		}
			
	}
		
}

你可能感兴趣的:(JFileChooser)