文件对话框

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

文件对话框的相关文章

QT学习 之 对话框 (四) 字体对话框、消息对话框、文件对话框、进程对话框(超详细中文注释)

QMessageBox类: 含有Question消息框.Information消息框.Warning消息框和Critical消息框等 通常有两种方式可以来创建标准消息对话框: 一种是采用“基于属性”的API,一种是使用QMessageBox的静态方法. 后者书写容易,但缺少灵活性,针对用户给出的提示的信息不够丰富,并且不能自定义消息对话框里面的按钮提示信息.因此推荐第一种写法. [cpp] view plaincopy <span style="font-size:18px;"&

如何找到文件的家-打开文件对话框openFileDialog

private void button1_Click(object sender, EventArgs e) { openFileDialog1.Filter = "*.txt|*.txt";//设置文件 DialogResult dr = openFileDialog1.ShowDialog();//显示打开文件对话框 if (dr ==DialogResult.OK) { richTextBox1.Text = System.IO.File.ReadAllText(openFile

Winform控件:打开文件对话框(OpenFileDialog)

OpenFileDialog类提供了用户打开文件的功能,它有如下属性: 属性 InitialDirectory:设置对话框的初始目录. Filter: 要在对话框中显示的文件筛选器,例如,"文本文件(*.txt)|*.txt|所有文件(*.*)||*.*". FilterIndex: 在对话框中选择的文件筛选器的索引,如果选第一项就设为1. RestoreDirectory: 控制对话框在关闭之前是否恢复当前目录. FileName:第一个在对话框中显示的文件或最后一个选取的文件. T

WebBrowser自动填充打开文件对话框

WebBrowser自动填充打开文件对话框 在使用WebBrowser编写自动表单填写软件的时候,不知道大家是否遇到国填写文件选择表单的情况.遇到这种情况的时候,无法直接队Html元素赋值,必须模拟手工选择的办法(是否有其它解决办法,不得而知),下面我们来说一下我的解决办法,如下: 1.先说一下正常表单的填写方式,在Delphi+WebBrowser的环境下,可采用如下代码: 1 WebBrowser.OleObject.document.all.item('XXX', 0).value :=x

VS MFC CFileDialog类 打开文件对话框和另存为对话框

1 explicit CFileDialog( 2 BOOL bOpenFileDialog, 指定的参数创建哪种类型的对话框. 设置到构造 文件已打开 对话框的 TRUE. 设置到构造 保存文件 对话框的 FALSE. 3 LPCTSTR lpszDefExt = NULL, 默认的文件扩展名. 如果用户在文件名框中不包括包含在用户的计算机上的关联) 的已知扩展 (一,lpszDefExt 指定的扩展自动追加到文件名. 如果此参数是 NULL,扩展不是追加. 4 LPCTSTR lpszFil

QT 打开文件对话框总结

Qstring fileName = QFileDialog::getOpenFileName(this, tr("open file"), " ",  tr("Allfile(*.*);;mp3file(*.mp3)")); 说明:这样就会产生一个对话框,和系统的资源管理器差不多的.返回的是你选择文件的 绝对路径. 参数1:父窗口 参数2:对话框的标题 参数3:默认的打开的位置,如"我的文档"等 参数4:文件的过滤器,注意文

MATLAB 文件对话框之图片格式转换

localpathname为当前路径,需要保存图片的位置,根据自己的实际路径设置,usedpathname用来保存打开的文件位置,方便下次打开文件对话框以上次的路径为默认路径. global usedpathname; global localpathname; localpathname='D:\Program Files\MATLAB\R2013a\bin\毕业设计\图片\';if ~ischar(usedpathname)[filename, pathname, filterindex]

MFC程序打开文件对话框出错的问题解决

前几天从网上下了个图像分析的mfc小程序,是VC6的 用VC6在本地编译生成都没问题,运行起来弹出一个未处理的错误,程序崩溃退出. 想起来原来遇到过打开文件对话框方面的问题,当时项目时间紧张未能深究. 这次要好好看下这个问题. 具体做法就是深入细致的跟踪.跟踪.跟踪... 应用代码,跟进 MFC的代码,跟进 Alt+8调出反汇编,跟进... 反复多次重复追踪.缩小目标,确定问题是:在CFileDialog 的析构函数中,调用了CString 的析构函数, 恰恰是析构CSring 出错了. CFi

弹出保存文件、打开文件对话框

声明:原创作品,转载时请注明文章来自SAP师太博客,并以超链接形式标明文章原始出处,否则将追究法律责任!原文出自: PARAMETERS:p_file LIKE rlgrap-filename OBLIGATORY. AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_file. "弹出选择文件对话框  CALL FUNCTION 'WS_FILENAME_GET'    EXPORTING*     DEF_FILENAME     = ' '      de