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

zea*_*der 1 java swing file-extension jfilechooser awt

我写了一个带有awt文本字段和按钮的java代码,如果单击该按钮,我可以使用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");
        }
Run Code Online (Sandbox Code Playgroud)

emk*_*a86 6

你的问题是:

chooser.showOpenDialog(null);
Run Code Online (Sandbox Code Playgroud)

停止执行代码,直到用户选择文件.在添加FileFilter和添加之后添加此行应该可以正常工作.

小解释:

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