2012-04-11 27 views
1

自分の望む拡張子(テキストファイル)のみを表示するJFileChooserを取得できません。FileNameExtensionFilterが動作しない

JFileChooser fc = new JFileChooser(); 
      FileNameExtensionFilter textFilter = new FileNameExtensionFilter("Text Files","txt"); 
      fc.addChoosableFileFilter(textFilter); 

私は間違っていますか?フィルタを削除すると、テキストファイルが表示されます。 質問は愚かに思えるかもしれませんが、解決策を見つけようとしましたが、私のコードは他の例と同じように見えます。たぶん私はただ脳をロックしているのかもしれない。

は、私が提案したアプローチを試してみましたが、私はまだ同じ問題を抱えているあなたの時間

いただきありがとうございます。だからどこかで何かが間違っているはずです。

import java.awt.event.ActionEvent; 

import java.awt.event.ActionListener; 
import javax.swing.JButton; 
import javax.swing.JFileChooser; 
import javax.swing.JFrame; 
import javax.swing.filechooser.FileNameExtensionFilter; 


public class ButtonListener implements ActionListener { 

private JFrame fr; 

public ButtonListener (JFrame frame){ 
    fr = frame; 
} 

public void actionPerformed(ActionEvent event) { 
    if(event.getSource() instanceof JButton) { 
     String action = event.getActionCommand(); 

     if (action.equals("First text")){ 

      JFileChooser fc = new JFileChooser(); 
      FileNameExtensionFilter textFilter = new FileNameExtensionFilter("Text Files","txt"); 
      fc.addChoosableFileFilter(textFilter); 
      int returnVal = fc.showOpenDialog(fr); 
      } 
     else if (action.equals("Second text")){ 

      } 
     else { 
      System.out.println("Error in ButtonListener"); 
     } 
    } 

} 

}

それが終了していないが、まだ、私が午前の延長問題を処理することができるはずです:多分誰かが私が間違っているのものを見つけることができます - 私は、クラスコードをロードします。

+0

このコードは私のために働きます。あなたはこの動作の原因となっている別の問題があるかもしれません。 – ControlAltDel

+0

何日か後にコンピュータを再起動して、今すぐ動作します。 –

答えて

1

代わりにsetFileFilterを試してみてください。

私はFileNameExtensionFilterを使用したことがないが、それは彼らが私はいつもちょうどFileFilterのを拡張して、受け入れオーバーライドしていたJava 1.6に

をこの便利なクラスを追加したことをうれしいです。 以下に定義私のクラスを使用して、あなたがして

chooser.setFileFilter(new OpenFileFilter("txt")); 

/** 
* This class defines which file types are opened (by default) by the program. 
* This file filter is used to associate a single file type (extension) with the program. 
* You could add more than one file type to the open file dialog using this class by repeatedly 
* calling addFileFilter. 
*/ 
import java.io.File; 
import javax.swing.filechooser.*; 

public class OpenFileFilter extends FileFilter { 
    public String fileExt = ""; 
    String txtExt = ".txt"; 

    public OpenFileFilter() { 
     this(".pxml"); //default file type extension. 
    } 

    public OpenFileFilter(String extension) { 
     fileExt = extension; 
    } 

    @Override public boolean accept(File f) { 
     if (f.isDirectory()) 
      return true; 
     return (f.getName().toLowerCase().endsWith(fileExt)); 
    } 

    public String getDescription() { 
     if(fileExt.equals(txtExt)) 
      return "Text Files (*" + fileExt + ")"; 
     else 
      return ("Other File"); 
    } 
} 
0

を書くことができ、私はあなたの質問が既に回答されたけど、念のためにあなたは...あなたはまた、使用している可能性が を知りませんでしたあなたFileNameExtensionFilterとしてください:

fc.setFileFilter(textFilter); 

私は同じprobでスタックされました。しばらくあなたと同じように。 ;)

関連する問題