Java 用于检查文件扩展名是否为.txt的程序

Java 用于检查文件扩展名是否为.txt的程序,java,swing,awt,jfilechooser,file-extension,Java,Swing,Awt,Jfilechooser,File Extension,我编写了一个java代码,其中包含一个awt文本字段和一个按钮,如果单击该按钮,我可以使用JFileChooser浏览文件。它需要检查文件是否有“.txt”扩展名。我写了下面的代码,但没有得到验证 我哪里做错了?请帮助确定我错在哪里 try{ final JFileChooser chooser = new JFileChooser(); chooser.showOpenDialog(null); choo

我编写了一个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(组件c)
阻止当前线程的执行,直到用户选择文件后执行用户操作和下一行代码。如果在添加
FileFilter
后再次调用
showOpenDialog
,它将按预期工作。

您的问题是:

chooser.showOpenDialog(null);
停止执行代码,直到用户选择文件。在添加
FileFilter
之后添加这一行,所有事情都应该正常工作

小解释:


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

我建议对
accept
方法使用
@Override
注释-请参阅此链接


另外,最好使用
filename.getName().toLowerCase().endsWith(“.txt”)
代替
filename.getName().endsWith(“.txt”)
以确保扩展名为
.TXT
的文件也将通过过滤器。

我建议对
接受方法使用
@Override
注释-请参阅此链接

另外,最好使用
filename.getName().toLowerCase().endsWith(“.txt”)
来代替
filename.getName().endsWith(.txt”)
,以确保扩展名为
.txt
的文件也能通过过滤器。

IIRC,accept()还必须允许目录。请注意,在除Windows以外的几乎所有操作系统上,扩展名都是无关的,因此用户可能希望选择没有扩展名的文件或其他文件。(在纯文本文件的特定情况下,这也可能发生在Windows上)。最后,如果确实需要,请尝试.IIRC,accept()还必须允许目录。请注意,在除Windows以外的几乎所有操作系统上,扩展名都是无关的,因此用户可能希望选择没有扩展名的文件或其他文件。(在纯文本文件的特定情况下,这也可能发生在Windows上)。最后,如果你真的必须,试试看。