java - 检查文件扩展名是否为 .txt 的程序

标签 java swing awt jfilechooser file-extension

我写了一个 java 代码,有一个 awt 文本字段和一个按钮,如果我点击按钮,我可以使用 JFileChooser 浏览文件。它需要检查文件是否有“.txt”扩展名。我写了下面的代码,但没有得到验证。

我哪里错了?请帮助确定我错在哪里。

         try{
            final JFileChooser chooser = new JFileChooser();
            chooser.showOpenDialog(null);
            chooser.addChoosableFileFilter(new FileFilter() {
            public String getDescription() {
                return "*.txt";
            }
            public boolean accept(File filename)
            {

                if(filename.getName().endsWith(".txt")){
                    return true;
                }
                else{
                System.out.println("Browsed dest file extension must be .txt");
                return false;
                }}
            });
        catch(Exception ex)
        {
            JOptionPane.showMessageDialog(f,"Exception occurred");
        }

最佳答案

你的问题是:

chooser.showOpenDialog(null);

停止执行代码,直到用户选择一个文件。在添加 FileFilter 之后添加这一行,一切都应该可以正常工作。

小解释:

方法 showOpenDialog(Component c) 阻止当前线程的执行,直到用户操作和下一行代码将在用户选择文件后执行。如果您在添加 FileFilter 后再次调用 showOpenDialog,它将按您预期的那样工作。

关于java - 检查文件扩展名是否为 .txt 的程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14536377/

相关文章:

带有 Canvas 类的 Java GUI NullPointerException

java - 如何多次使用一个按钮?

java - Spring ScriptUtils - PostgreSQL 中未终止的美元报价

java - 如何使用lucene搜索文件

java - 为什么当我进入或退出 JDialog 时,mouseExited 和 mouseEntered 方法同时运行?

java - 无限的游戏背景

java - 根据数据库的值更改 JTable 行的颜色

java - 为什么我创建的点没有移动?

java - 有一个 ObjectFactory 接口(interface)和实现它的类是好的设计吗

java - 谷歌电视插件 Android 模拟器低空间通知