Java 用于检查文件扩展名是否为.txt的程序
我编写了一个java代码,其中包含一个awt文本字段和一个按钮,如果单击该按钮,我可以使用JFileChooser浏览文件。它需要检查文件是否有“.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
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上)。最后,如果你真的必须,试试看。