文件对话框

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+"
");
                    }
                    in1.close();
                    fileReader.close();
                }
                catch(IOException exp){}
            }
        }
    }
}
原文地址:https://www.cnblogs.com/vhyc/p/6036931.html