JFileChooser类可以创建文件对话框
有下列保存和打开两个方法
showSaveDialog(Component a); showOpenDialog(Component a);
参数a是文件对话框的位置,null是在屏幕的中央,this在窗口中央
用户操作对话框的“确定”,“取消”,“关闭”的时候,上面方法都会返回两个常量
JFileChooser.APPROVE_OPTION
JFileChooser.CANCEL_OPTION
如果希望文件对话框所操作的文件类型是需要的几种,比如“jpg”图形啊,可以
FileNameExtensionFilter filter1=new FileNameExtensionFilter("图形文件“,"jpg","gif")
然后用文件对话框的实例调用setFileFilter(FileNameExtensionFilter filter)方法
测试代码
package testWin; import java.awt.EventQueue; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.io.*; import javax.swing.*; import javax.swing.JFrame; import javax.swing.JScrollPane; import java.awt.BorderLayout; import javax.swing.JTextField; import javax.swing.filechooser.FileNameExtensionFilter; public class TestWin { public static void main(String args[]){ MyWin win1=new MyWin(); } } class MyWin extends JFrame implements ActionListener{ JFileChooser file1;//文件对话框 JMenuBar menubar; JMenu menu; JMenuItem save,open; JTextArea text; BufferedReader in1;//缓冲输入 FileReader fileReader;//文件字符输入 BufferedWriter out1;//缓冲输出 FileWriter fileWriter;//文件字符输出 MyWin(){ init(); setBounds(30,30,300,400); setVisible(true); setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); } void init(){ text=new JTextArea(10,10); add(new JScrollPane(text),BorderLayout.CENTER); menubar=new JMenuBar(); menu=new JMenu("file"); save=new JMenuItem("save"); open=new JMenuItem("open"); save.addActionListener(this); open.addActionListener(this); menu.add(save); menu.add(open); menubar.add(menu); setJMenuBar(menubar); file1=new JFileChooser(); FileNameExtensionFilter filter=new FileNameExtensionFilter("java文件","txt");//文件名过滤 file1.setFileFilter(filter);//过滤下 } public void actionPerformed(ActionEvent e){ if(e.getSource()==save){ int state=file1.showSaveDialog(this);//显示出保存框 if(state==JFileChooser.APPROVE_OPTION){ try{ File dir=file1.getCurrentDirectory();//得到保存路径 String name=file1.getSelectedFile().getName();//得到选择的的名字 File file=new File(dir,name); fileWriter=new FileWriter(file); out1=new BufferedWriter(fileWriter); out1.write(text.getText()); out1.close(); fileWriter.close(); } catch(IOException exp){} } } else if(e.getSource()==open){ int state=file1.showOpenDialog(this); if(state==JFileChooser.APPROVE_OPTION){ try{ File dir=file1.getCurrentDirectory(); String name=file1.getSelectedFile().getName(); File file=new File(dir,name); fileReader=new FileReader(file); in1=new BufferedReader(fileReader); String s=null; for(;(s=in1.readLine())!=null;){ text.append(s+"\n"); } in1.close(); fileReader.close(); } catch(IOException exp){} } } } }
时间: 2024-10-10 17:36:16