java :filefilter限制文件类型,如何将Java中的文件选择器限制为特定文件?

private void openMenuActionPerformed(java.awt.event.ActionEvent evt) {

DBmanager db = new DBmanager();

if (!db.getCurrentUser().equals("Admin")) {

JOptionPane.showMessageDialog(this, "You are Not Allowed to Run Applications");

JFileChooser fileChooser = new JFileChooser();

fileChooser.setFileSelectionMode(JFileChooser.FILES_ONLY);

fileChooser.addChoosableFileFilter(new FileNameExtensionFilter("PDF Documents", "pdf"));

fileChooser.addChoosableFileFilter(new FileNameExtensionFilter("MS Office Documents", "docx", "xlsx", "pptx"));

fileChooser.addChoosableFileFilter(new FileNameExtensionFilter("Images", "jpg", "png", "gif", "bmp"));

fileChooser.setAcceptAllFileFilterUsed(false);

int returnVal = fileChooser.showOpenDialog(this);

if (returnVal == JFileChooser.APPROVE_OPTION) {

File file = fileChooser.getSelectedFile();

if (Desktop.isDesktopSupported()) {

try {

Desktop.getDesktop().open(file);

} catch (Exception e) {

e.printStackTrace();

}

}

}

} else if (db.getCurrentUser().equals("Admin")) {

JFileChooser fileChooser = new JFileChooser();

fileChooser.setAcceptAllFileFilterUsed(true);

int returnVal = fileChooser.showOpenDialog(this);

if (returnVal == JFileChooser.APPROVE_OPTION) {

File file = fileChooser.getSelectedFile();

if (Desktop.isDesktopSupported()) {

try {

Desktop.getDesktop().open(file);

} catch (Exception e) {

e.printStackTrace();

}

}

}

}// TODO add your handling code here:

}

I am trying to filter files in a file filter by setting fileChooser.setAcceptAllFileFilterUsed(false);. The "all files" option disappears from the FileChooser but all files remain visible unless you select an option from PDF documents,ms Office or images. I want to have only my 3 custom filters upon opening the file chooser.

解决方案

For example, if you want to filter your JFileChooser to strictly display most commonly found image files, you would use something like this:

FileNameExtensionFilter filter = new FileNameExtensionFilter("Image Files", "jpg", "png", "gif", "jpeg");

JFileChooser fileChooser = new JFileChooser();

fileChooser.setFileFilter(filter);

The first argument is the description (what gets displayed upon selection at the bottom) and the second argument are the informal file extensions.

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
//package net.src.net; <br><br>import javax.swing.*; <br>import javax.swing.event.*; <br>import java.awt.*; <br>import java.awt.event.*; <br>import java.io.*; <br>import java.awt.color.*; <br>import java.awt.font.*; <br>import javax.swing.undo.*; <br><br>public class Note extends JFrame <br>{ <br>boolean isChange=false; <br>boolean wasChange=false; <br>JMenuBar menuBar=new JMenuBar(); <br><br>JMenu menuFile=new JMenu("File"); <br>JMenuItem menuFileOpen=new JMenuItem("Open.."); <br>JMenuItem menuFileSave=new JMenuItem("Save.."); <br>JMenuItem menuFileExit=new JMenuItem("Exit"); <br><br>JMenu menuEdit=new JMenu("Edit"); <br>JMenuItem menuFileCut=new JMenuItem("Cut"); <br>JMenuItem font=new JMenuItem("Font"); <br>JMenuItem menuFilePaste=new JMenuItem("Paste"); <br><br>JTextArea fileArea=new JTextArea(); <br><br>public Note() <br>{ <br>this.setTitle("记事本"); <br>Toolkit tool=this.getToolkit();//窗口图标! <br>Image myimage=tool.getImage("戒指.jpg"); <br>this.setIconImage(myimage); <br>setDefaultCloseOperation(DO_NOTHING_ON_CLOSE); <br>addWindowListener(new WindowAdapter() <br>{ <br>public void windowClosing(WindowEvent e) <br>{ <br>exit(); <br>} <br>}); <br>menuFileOpen.addActionListener(new ActionListener() <br>{ <br>public void actionPerformed(ActionEvent e) <br>{ <br>fileOpen_actionPerformed(e); <br>} <br>}); <br>menuFileSave.addActionListener(new ActionListener() <br>{ <br>public void actionPerformed(ActionEvent e) <br>{ <br>fileSave_actionPerformed(e); <br>} <br>}); <br>menuFileExit.addActionListener(new ActionListener() <br>{ <br>public void actionPerformed(ActionEvent e) <br>{ <br>fileExit_actionPerformed(e); <br>} <br>}); <br>menuFileCut.addActionListener(new ActionListener() <br>{ <br>public void actionPerformed(ActionEvent e) <br>{ <br>fileCut_actionPerformed(e); <br>} <br>}); <br>menuFilePaste.addActionListener(new ActionListener() <br>{ <br>public void actionPerformed(ActionEvent e) <br>{ <br>filePaste_actionPerformed(e); <br>} <br>}); <br>font.addActionListener(new ActionListener () <br>{ <br>public void actionPerformed(ActionEvent e) <br>{ <br>fileColor_actionPerformed(e); <br>} <br>}); <br>fileArea.getDocument().addDocumentListener(new DocumentListener() <br>{ <br>public void insertUpdate(DocumentEvent e) <br>{ <br>wasChange=isChange; <br>isChange=true; <br>} <br>public void removeUpdate(DocumentEvent e) <br>{ <br>wasChange=isChange; <br>isChange=true; <br>} <br>public void changedUpdate(DocumentEvent e) <br>{ <br>wasChange=isChange; <br>isChange=true; <br>} <br>}); <br>setSize(500,450); <br>menuBar.add(menuFile); <br>menuFile.setMnemonic('F'); <br>menuBar.add(menuEdit); <br>menuEdit.setMnemonic('E'); <br>menuFile.add(menuFileOpen); <br>menuFileOpen.setMnemonic('O');//访问健; <br>menuFileOpen.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_O,InputEvent.CTRL_MASK));//快捷健; <br>menuFile.add(menuFileSave); <br>menuFileSave.setMnemonic('S'); <br>menuFileSave.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_S,InputEvent.CTRL_MASK)); <br>menuFile.addSeparator(); <br>menuFile.add(menuFileExit); <br>menuFileExit.setMnemonic('E'); <br>menuEdit.add(menuFileCut); <br>menuFileCut.setMnemonic('C'); <br>menuFileCut.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_C,InputEvent.CTRL_MASK)); <br>menuEdit.add(menuFilePaste); <br>menuFilePaste.setMnemonic('P'); <br>menuFilePaste.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_P,InputEvent.CTRL_MASK)); <br>menuEdit.add(font); <br>font.setMnemonic('N'); <br>font.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_N,InputEvent.CTRL_MASK)); <br>this.getContentPane().add(new JScrollPane(fileArea)); <br>setJMenuBar(menuBar); <br>fileArea.setLineWrap(true); <br>} <br>public void fileExit_actionPerformed(ActionEvent e) <br>{ <br>System.exit(0); <br>} <br>public void fileOpen_actionPerformed(ActionEvent e) <br>{ <br>//以下是filter; <br>JFileChooser fileChooser=new JFileChooser(); <br>//fileChooser.addChoosableFileFilter(new myFilter("*.txt","Files(*.txt)")); <br>fileChooser.addChoosableFileFilter(fileChooser.getFileFilter()); <br>if(fileChooser.APPROVE_OPTION!=fileChooser.showOpenDialog(this))return; <br>//以下是文件读 <br>BufferedReader dataIn=null; <br>try <br>{ <br>dataIn=new BufferedReader(new FileReader(fileChooser.getSelectedFile().getPath())); <br>String c=null; <br>do <br>{ <br>c=dataIn.readLine(); <br>if(c!=null) <br>fileArea.append(c+"\n"); <br>} <br>while(c!=null); <br>} <br>catch(Exception ex) <br>{ <br>System.out.println("Catch exception:"+ex.toString()); <br>} <br>} <br>public void exit() <br>{ <br>if(isChange==false) <br>System.exit(1); <br>else <br>{ <br>int decision=JOptionPane.showConfirmDialog(this,"The File has Change.\n"+"Do you want to save the change?", <br>"Notepad",JOptionPane.YES_NO_CANCEL_OPTION,JOptionPane.WARNING_MESSAGE); <br>if (decision == JOptionPane.YES_OPTION) <br>{ <br>//以下是将文件写入计算机! <br>try { <br>JFileChooser fileSave = new JFileChooser(); <br>fileSave.setDialogTitle("保存文件"); <br>//fileSave.addChoosableFileFilter(new myFilter("*.txt","Files(*.txt)")); <br>fileSave.addChoosableFileFilter(fileSave.getFileFilter()); <br>if (fileSave.APPROVE_OPTION != fileSave.showSaveDialog(this)) <br>return; <br>BufferedWriter dataOut = new BufferedWriter(new BufferedWriter(new <br>FileWriter(fileSave.getSelectedFile()))); <br>String c = null; <br>do { <br>String str = fileArea.getText(); <br>dataOut.write(str); <br>dataOut.close(); <br>} <br>while (c != null); <br>} <br>catch (Exception e2) { <br>System.out.println("Catch exception:有错误!" + e2.toString()); <br>} <br>} <br>else if (decision == JOptionPane.NO_OPTION) <br>System.exit(1); <br>else if (decision == JOptionPane.CANCEL_OPTION); <br>; <br>} <br>//innerclass.fileSave_actionPerformed(); <br>} <br>public void fileSave_actionPerformed(ActionEvent e1) <br>{ <br><br>//以下是将文件写入计算机! <br>try <br>{ <br>JFileChooser fileSave=new JFileChooser(); <br>fileSave.setDialogTitle("保存文件" ); <br>//fileSave.addChoosableFileFilter(new myFilter("*.txt","Files(*.txt)")); <br>fileSave.addChoosableFileFilter(fileSave.getFileFilter()); <br>if(fileSave.APPROVE_OPTION!=fileSave.showSaveDialog(this))return; <br>BufferedWriter dataOut=new BufferedWriter(new BufferedWriter(new FileWriter(fileSave.getSelectedFile()+".txt"))); <br>//RandomAccessFile dataOut=new RandomAccessFile(fileSave.getSelectedFile(),"rw"); <br>String c=null; <br>do <br>{ <br>String str=fileArea.getText(); <br>dataOut.write(str); <br>dataOut.close(); <br>} <br>while(c!=null); <br>} <br>catch(Exception e2) <br>{ <br>System.out.println("Catch exception:有错误!"+e2.toString()); <br>} <br>} <br>public static void main(String arg[]) <br>{ <br>Note nt=new Note(); <br>nt.show(); <br>} <br>public void fileCut_actionPerformed(ActionEvent e) <br>{ <br>fileArea.cut(); <br>} <br>public void filePaste_actionPerformed(ActionEvent e) <br>{ <br>fileArea.paste(); <br>} <br>public void fileColor_actionPerformed(ActionEvent e) <br>{ <br>JColorChooser fileColor=new JColorChooser(); <br>//fileArea.setForeground(fileColor.showDialog(this,"颜色",Color.red)); <br>//fileArea.setSelectionColor(fileColor.showDialog(this,"颜色",Color.red)); <br>fileArea.setSelectionColor(fileColor.showDialog(this,"颜色",Color.black)); <br>} <br>} <br>//文件过滤类怎么写!
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值