Re: Adding FileFilters to JFileChooser
On Mar 24, 12:21 pm, Mark Space <marksp...@sbc.global.net> wrote:
Jason Cavett wrote:
the proper filter (like Mark suggested), it's just added to the bottom
of the list. So, I get something like this in my filters list:
File Filter 1
File Filter 2
File Filter 3
File Filter 1 <- SELECTED
It really doesn't make sense.
I can't tell what you are doing with out an SSCCE, but that's not what I
get. This code does what you described you wanted in your OP. I did
notice that none of these methods are marked as thread-safe when I wrote
out this example, so I called them from the EDT. Perhaps that could be
the issue?
package fubar;
import javax.swing.JFileChooser;
import javax.swing.filechooser.FileNameExtensionFilter;
public class JOpenFilter
{
public static void main( String... args )
{
javax.swing.SwingUtilities.invokeLater( new Runnable()=
{
@Override
public void run()
{
createAndShowGui();
}
} );
}
private static void createAndShowGui() {
//Create a file chooser
final JFileChooser fc = new JFileChooser();
FileNameExtensionFilter f;
fc.addChoosableFileFilter( f = new FileNameExtension=
Filter(
"Fu 1", "ff1", "ffx" ) );
fc.addChoosableFileFilter( new FileNameExtensionFilter=
(
"Fu 2", "ff2" ) );
fc.addChoosableFileFilter( new FileNameExtensionFilter=
(
"Fu 3", "ff3" ) );
fc.setFileFilter( f );
int returnVal = fc.showOpenDialog( null );
System.out.println( "returned value = " + returnVal =
);
}
}
Well, you were right about one thing - I wasn't doing the setup on the
EDT. However, when I forced that to happen (using
SwingUtilities.invokeLater). But, this didn't change what was
happening. (I did write a quick example just to make sure I was doing
it right.)
I did write an SSCCE because, well, given how large this application
is, it's impossible for me to recreate the exact problem.