简单的文件选择对话框:

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. 【狼】unity3d 安卓播放视频替代视频纹理

    http://www.cnblogs.com/zhanlang96/p/3726684.html 原创,有问题或错误的话希望大家批评指正 导出apk,是不能用电影纹理的,所以我们只能用这个办法 这个 ...

  2. Spring JDBC FOUND_ROWS 安全吗?

    在很多分页的程序中都这样写: SELECT COUNT(*) from `table` WHERE ......;  查出符合条件的记录总数 SELECT * FROM `table` WHERE . ...

  3. 3.Jmeter 快速入门教程(三-1) --添加响应断言(即loadrunner中所指的检查点)

    上一节课,我们创建了一个测试场景,并进行了少量vuser的负载测试. 有时候我们执行了测试,但是发现并不是所有事务都执行成功了. 那是因为我们只是发起了测试,但并没有对每次请求测试的返回作校验. 所以 ...

  4. TP5截取部分字符串

    TP5截取超出的字符串,使用...显示 在公共文件common.php中 视图模板中调用

  5. 树的重心(DFS)

    ;vector< ; i < v[node].size() ; i++){ , ; i <= n- ; i++){ cin >> a >> b; v[a].p ...

  6. Optional int parameter 'pId' is present but cannot be translated into a null value due to being declared as a primitive type.

    接口测试的时候遇到了一个问题,导致测试阻断了好久,在此记录,谨防忘记. 具体报错如下: Optional int parameter 'pId' is present but cannot be tr ...

  7. ES5新增方法(数组,字符串,对象)

    一.数组方法 迭代(遍历)方法:forEach().map().filter().some().every(): 1. array. forEach(function(value,index,arr) ...

  8. 浅谈Java/Android下的注解

    什么是注解 java.lang.annotation,接口 Annotation,在JDK5.0及以后版本引入. 注解是代码里的特殊标记,这些标记可以在编译.类加载.运行时被读取,并执行相应的处理.通 ...

  9. ubuntu颜色配置

    对于刚接触ubuntu的同学们,打开终端(ctrl+alt+T),会发现里面都是一个颜色,不管是用户名.主机名还是命令都是白色,当然,用 ls 列出文件的时候是会多一种颜色的.即使这样,对开发人员来说 ...

  10. IDEA工具,配置相关笔记

    1.修改背景颜色(黑/白)File -> settings -> Editor -> Color Scheme -> General -> (Scheme选择Defaul ...