简单的文件选择对话框:

package mypackage;
/**
 * 打开文件和存储文件
 */
import java.awt.BorderLayout;
import java.awt.Container;
import java.awt.Dimension;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.WindowEvent;
import java.awt.event.WindowListener;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import javax.swing.JButton;
import javax.swing.JFileChooser;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JTextArea;
public class FileChooserUtils implements ActionListener {
 JFrame f = null;
 JLabel label = null;
 JTextArea textarea = null;
 JFileChooser fileChooser = null;
 public FileChooserUtils() {
  f = new JFrame("FileChooser Example");
  Container contentPane = f.getContentPane();
  textarea = new JTextArea();
  JScrollPane scrollPane = new JScrollPane(textarea);
  scrollPane.setPreferredSize(new Dimension(350, 300));
  JPanel panel = new JPanel();
  JButton b1 = new JButton("新建文件");
  b1.addActionListener(this);
  JButton b2 = new JButton("存储文件");
  b2.addActionListener(this);
  panel.add(b1);
  panel.add(b2);
  label = new JLabel(" ", JLabel.CENTER);
  fileChooser = new JFileChooser("D:\\");
  contentPane.add(label, BorderLayout.NORTH);
  contentPane.add(scrollPane, BorderLayout.CENTER);
  contentPane.add(panel, BorderLayout.SOUTH);
  f.pack();
  f.setVisible(true);
  f.addWindowListener(new WindowListener() {
   @Override
   public void windowOpened(WindowEvent e) {
    // TODO Auto-generated method stub
   }
   @Override
   public void windowIconified(WindowEvent e) {
    // TODO Auto-generated method stub
   }
   @Override
   public void windowDeiconified(WindowEvent e) {
    // TODO Auto-generated method stub
   }
   @Override
   public void windowDeactivated(WindowEvent e) {
    // TODO Auto-generated method stub
   }
   @Override
   public void windowClosing(WindowEvent e) {
    System.exit(0);
   }
   @Override
   public void windowClosed(WindowEvent e) {
    // TODO Auto-generated method stub
   }
   @Override
   public void windowActivated(WindowEvent e) {
    // TODO Auto-generated method stub
   }
  });
 }
 public static void main(String[] args) {
  new FileChooserUtils();
 }
 public void actionPerformed(ActionEvent e) {
  File file = null;
  int result;
  if (e.getActionCommand().equals("新建文件")) {
   fileChooser.setApproveButtonText("确定");
   fileChooser.setDialogTitle("打开文件");
   result = fileChooser.showOpenDialog(f);
   textarea.setText("");
   if (result == JFileChooser.APPROVE_OPTION) {
    file = fileChooser.getSelectedFile();
    label.setText("您选择打开的文件名称为:" + file.getName());
   } else if (result == JFileChooser.CANCEL_OPTION) {
    label.setText("您没有选择任何文件");
   }
   FileInputStream fileInStream = null;
   if (file != null) {
    try {
     fileInStream = new FileInputStream(file);
     
    } catch (FileNotFoundException e2) {
     label.setText("File Not Found");
     return;
    }
    int readbyte;
    try {
     while ((readbyte = fileInStream.read()) != -1) {
      textarea.append(String.valueOf((char) readbyte));
     }
    } catch (IOException e2) {
     label.setText("读取文件错误");
    } finally {
     try {
      if (fileInStream != null)
       fileInStream.close();
     } catch (IOException e3) {
     }
    }
   }
  }
  if (e.getActionCommand().equals("存储文件")) {
   result = fileChooser.showSaveDialog(f);
   file = null;
   String fileName;
   if (result == JFileChooser.APPROVE_OPTION) {
    file = fileChooser.getSelectedFile();
    label.setText("您选择存储的文件名称为:" + file.getName());
   } else if (result == JFileChooser.CANCEL_OPTION) {
    label.setText("您没有选择任何文件");
   }
   FileOutputStream fileOutStream = null;
   if (file != null) {
    try {
     fileOutStream = new FileOutputStream(file);
    } catch (FileNotFoundException e2) {
     label.setText("File Not Found");
     return;
    }
    String content = textarea.getText();
    try {
     fileOutStream.write(content.getBytes());
    } catch (IOException e2) {
     label.setText("写入文件错误");
    } finally {
     try {
      if (fileOutStream != null)
       fileOutStream.close();
     } catch (IOException e3) {
     }
    }
   }
  }
 }
}
 
可选择文件类型的文件选择对话框:
package mypackage;
/**
 * 文件过滤
 */
import java.awt.BorderLayout;
import java.awt.Container;
import java.awt.Dimension;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.WindowEvent;
import java.awt.event.WindowListener;
import java.io.File;
import javax.swing.JButton;
import javax.swing.JFileChooser;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.filechooser.FileFilter;
public class FileFilterUtils implements ActionListener{
 
 JFrame f = null;
 JLabel label = null;
 JFileChooser fileChooser = null;
 
 public FileFilterUtils() {
  f= new JFrame("FileFilter");
  Container contentPane = f.getContentPane();
  
  JButton b = new JButton("打开文件");
  
  b.addActionListener(this);
  
  label = new JLabel(" ",JLabel.CENTER);
  label.setPreferredSize(new Dimension(150, 30));
  contentPane.add(label,BorderLayout.CENTER);
  contentPane.add(b,BorderLayout.SOUTH);
  
  f.pack();
  f.setVisible(true);
  f.addWindowListener(new WindowListener() {
   
   @Override
   public void windowOpened(WindowEvent e) {
    // TODO Auto-generated method stub
    
   }
   
   @Override
   public void windowIconified(WindowEvent e) {
    // TODO Auto-generated method stub
    
   }
   
   @Override
   public void windowDeiconified(WindowEvent e) {
    // TODO Auto-generated method stub
    
   }
   
   @Override
   public void windowDeactivated(WindowEvent e) {
    // TODO Auto-generated method stub
    
   }
   
   @Override
   public void windowClosing(WindowEvent e) {
    System.exit(0);
    
   }
   
   @Override
   public void windowClosed(WindowEvent e) {
    // TODO Auto-generated method stub
    
   }
   
   @Override
   public void windowActivated(WindowEvent e) {
    // TODO Auto-generated method stub
    
   }
  });
 }
 
 public static void main(String[] args) {
  new FileFilterUtils();
 }
 
 public void actionPerformed(ActionEvent e) {
  fileChooser = new JFileChooser("c:\\");
  fileChooser.addChoosableFileFilter(new JAVAFileFilter("class"));
  fileChooser.addChoosableFileFilter(new JAVAFileFilter("java"));
  int result = fileChooser.showOpenDialog(f);
  if(result == JFileChooser.APPROVE_OPTION) {
   File file = fileChooser.getSelectedFile();
   label.setText("您选择了:"+file.getName()+"文件");
  }else if(result == fileChooser.CANCEL_OPTION) {
   label.setText("您没有选取文件");
  }
 }
}
 class JAVAFileFilter extends FileFilter{
  String ext;
  
  public JAVAFileFilter(String ext) {
   this.ext = ext;
  }
  
  public boolean accept(File file) {
   if(file.isDirectory())
    return true;
   
   String fileName = file.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 Source File (*.class)";
   return "";
  }
 }
 

利用JFileChooser实现文件选择对话框的更多相关文章

  1. 文件选择对话框:CFileDialog

    程序如下: CString   FilePathName; //文件名参数定义 CFileDialog  Dlg(TRUE,NULL,NULL,                             ...

  2. NX二次开发-UFUN文件选择对话框UF_UI_create_filebox

    NX11+VS2013 #include <uf.h> #include <uf_ui.h> UF_initialize(); //文件选择对话框 char sPromptSt ...

  3. VBScript - 弹出“文件选择对话框”方法大全!

    本文记录,VBScript 中,各种打开 "文件选择对话框" 的方法. 实现方法-1 (mshta.exe): 首先,我们要实现的就是,弹出上面的这个"文件选择对话框&q ...

  4. Java Swing提供的文件选择对话框 - JFileChooser

    JFileChooser()           构造一个指向用户默认目录的 JFileChooser. JFileChooser(File currentDirectory)           使 ...

  5. Java文件选择对话框(文件选择器JFileChooser)的使用:以一个文件加密器为例

    文件加密器,操作过程肯定涉及到文件选择器的使用,所以这里以文件加密器为例.下例为我自己写的一个文件加密器,没什么特别的加密算法,只为演示文件选择器JFileChooser的使用. 加密器界面如图: 项 ...

  6. JFileChooser 打开文件选择(一)

    import javax.swing.JFileChooser; import javax.swing.filechooser.FileNameExtensionFilter; public clas ...

  7. SWT的文件选择对话框I的使用

    swt文件选择框 FileDialog fileselect=new FileDialog(shell,SWT.SINGLE);                          fileselect ...

  8. DevExpress的TreeList实现自定义右键菜单打开文件选择对话框

    场景 DevExpress的TreeList实现节点上添加自定义右键菜单并实现删除节点功能: https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/det ...

  9. C# 文件选择对话框,Unity3d文件保存对话框

    using OpenWinForm = System.Windows.Forms; 在unity3d中,使用FileDialog应该把System.Windows.Forms.dll拷贝到unity工 ...

随机推荐

  1. 运维 06 vim与程序员

    vim与程序员   所有的 Unix Like 系统都会内建 vi 文书编辑器,其他的文书编辑器则不一定会存在. 但是目前我们使用比较多的是 vim 编辑器. vim 具有程序编辑的能力,可以主动的以 ...

  2. 【Linux】- 同步网络时间

    转自:Linux同步网络时间 Linux服务器运行久时,系统时间就会存在一定的误差,一般情况下可以使用date命令进行时间设置,但在做数据库集群分片等操作时对多台机器的时间差是有要求的,此时就需要使用 ...

  3. redis 学习入门篇

    基本概念 redis是一个开源的.使用C语言编写的.支持网络交互的.可基于内存也可持久化的Key-Value数据库(非关系性数据库). redis的特点 速度快,因为数据存在内存中,读写数据的时候都不 ...

  4. 爬虫平台设置代理ip

    首先从国外一个网站爬取了免费的代理ip信息存到mongodb中:接着代码设置: 在爬虫客户端抽象类中添加属性: 设置代理的代码其实就以下几句: firefoxProfile.setPreference ...

  5. CF585F Digits of Number Pi

    题目 把\(s\)串所有长度为\(\lfloor \frac{d}{2}\rfloor\)的子串插入一个ACAM中,之后数位dp就好了,状态是\(dp_{i,j,0/1}\)第\(i\)位,在ACAM ...

  6. Oracle中常见的Hint(一)

    Oracle中的Hint可以用来调整SQL的执行计划,提高SQL执行效率.下面分类介绍Oracle数据库中常见的Hint.这里描述的是Oracle11gR2中的常见Hint,Oracle数据库中各个版 ...

  7. TypeScript和JavaScript的区别

    JavaScript和TypeScript的对比 注:参考https://juejin.im/entry/5a52ed336fb9a01cbd586f9f做的笔记 概要介绍 JavaScript Ja ...

  8. [转] datetime.now、datetime.utcnow以及Django中的timezone.now之间的区别

      https://blog.csdn.net/sinat_41898105/article/details/80984298   在我们使用Django做项目时经常会遇到时间的存储与读取不一致的问题 ...

  9. check all tables rows

    select TABLE_NAME,NUM_ROWS from all_tables where OWNER='xx' order by NUM_ROWS desc;

  10. vue eslint修改为4个空格