Re: Adding FileFilters to JFileChooser
On Mar 24, 2:55 am, Roedy Green <see_webs...@mindprod.com.invalid>
wrote:
On Mon, 23 Mar 2009 19:31:43 -0700 (PDT), Jason Cavett
<jason.cav...@gmail.com> wrote, quoted or indirectly quoted someone
who said :
List<DefaultFileFilter> filters = new ArrayList<DefaultFileFilter>();
filters.add(new DefaultFileFilter(".ff1", "File Filter 1"));
filters.add(new DefaultFileFilter(".ff2", "File Filter 2"));
filters.add(new DefaultFileFilter(".ff3", "File Filter 3"));
JFileChooser openDialog = new JFileChooser();
for (DefaultFileFilter filter : callback.getFileFilters()) {
openDialog.setFileFilter(filter);
}
I see several problems.
callback is undefined. Did you mean "filters"?
You want to ADD not SET the filter.
openDialog is a confusing name for a JFileChooser. Traditionally you
would use jFileChooser or jfc.
jfc.addChoosableFileFilter( new JpgFileFilter() );
It is easier to create a static array than a static ArrayList.
FileFilter[] filters = {
new DefaultFileFilter(".ff1", "File Filter 1"),
new DefaultFileFilter(".ff2", "File Filter 2"),
new DefaultFileFilter(".ff2", "File Filter 2")};
--
Roedy Green Canadian Mind Productshttp://mindprod.com
"Nature provides a free lunch, but only if we control our appetites."
~ William Ruckelshaus, America's first head of the EPA
My bad - I copied this code from elsewhere. The callback
is...well...a callback that allows a developer to use my framework to
define certain "stuff" that is specific to their application. For
this example, I did mean filters.
I called it "openDialog" because it's an open dialog (opening a file
in the application).
I switched to addChoosableFileFilter, and the same problem still
occurs. (The last item added is the one that is selected.) However,
the last item is still selected. And, when I go to setFileFilter to
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.