stepma
asked on
Using java.awt.FileDialog
I am using jdk1.1.5 and I want to use the java.awt.FileDialog.
I want the FileDialog to only show directories and not any of the files in those directories. Is this possible? If so, how can I accomplish this?
I want the FileDialog to only show directories and not any of the files in those directories. Is this possible? If so, how can I accomplish this?
ASKER
I do need details about the FilenameFilter...
could you show me an implementation of a FilenameFilter as you described above where it will only show directories, and also how to hook it into FileDialog?
could you show me an implementation of a FilenameFilter as you described above where it will only show directories, and also how to hook it into FileDialog?
The easiest way is to let your controlling Frame class implement the FilenameFilter. (Adding the words implements FilenameFilter at the class declaration.) Then you have to implement the method accept which in your case would look like this:
boolean accept(File dir, String file)
{
File someFile = new File( dir, file );
return someFile.isDirectory();
}
Then somewhere near the creation of your FileDialog you will have to send the setFilenameFilter method to the FileDialog. Like this:
FileDialog fd = new FileDialog( this );
fd.setFilenameFilter( this );
fd.show();
That's about it.
If you would like to place the implementation of FilenameFilter somewhere else you'll have to use such an object as the argument to setFilenameFilter().
Clear enough?
boolean accept(File dir, String file)
{
File someFile = new File( dir, file );
return someFile.isDirectory();
}
Then somewhere near the creation of your FileDialog you will have to send the setFilenameFilter method to the FileDialog. Like this:
FileDialog fd = new FileDialog( this );
fd.setFilenameFilter( this );
fd.show();
That's about it.
If you would like to place the implementation of FilenameFilter somewhere else you'll have to use such an object as the argument to setFilenameFilter().
Clear enough?
ASKER
I did this suggestion and it does not work, when I open the FileDialog, I still see files, not just directories...is there something else that I have to do?
Hi,
I tried them myself as well and it doesn't seem to work at all to connect a FilenameFilter to a FileDialog. (Have never used this feature myself.) The described way definitely is the way to do it according to documentation available to me. ("Java in a nutshell" and JDK API doc online.) I have used filters with the list method in File though and it works fine all the time.
I will investigate the matter further and I suggest that you reopen the question to other experts in the meantime. Maybe someone already knows about a workaround.
I tried them myself as well and it doesn't seem to work at all to connect a FilenameFilter to a FileDialog. (Have never used this feature myself.) The described way definitely is the way to do it according to documentation available to me. ("Java in a nutshell" and JDK API doc online.) I have used filters with the list method in File though and it works fine all the time.
I will investigate the matter further and I suggest that you reopen the question to other experts in the meantime. Maybe someone already knows about a workaround.
Hi,
When i reverse engineered the FileDialogPeer source from jdk1.1.6 kit, i found that the method setFilenameFilter is left empty !!.
Vijay
When i reverse engineered the FileDialogPeer source from jdk1.1.6 kit, i found that the method setFilenameFilter is left empty !!.
Vijay
Hi,
When i reverse engineered the FileDialogPeer source from jdk1.1.6 kit, i found that the method setFilenameFilter is left empty for both solaris and windows implementation !!.
Vijay
When i reverse engineered the FileDialogPeer source from jdk1.1.6 kit, i found that the method setFilenameFilter is left empty for both solaris and windows implementation !!.
Vijay
Which means that the API documentation for FileDialog is erroneous. Too bad.
Yes, I seem to remember that the FilenameFilter was left unimplememnted because it couldn't be done in a platform independant way.
ASKER
Oh well, I guess I am out of luck!!
Unfortunately, but it shouldn't be that hard to implement a better FileDialog wit the desired functionality if you have plenty of time. Such an implementation could offer the possibility to actually pick directories as well. Some combination of List, TextField and Button on a Panel would do it.
Good luck anyway! :)
Good luck anyway! :)
Can you increase the points for i have one implemented by me.
ASKER CERTIFIED SOLUTION
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
ASKER
evijay, Can I see your source code now...
Did you go thru the jfilechooser component of swing.
If you need details about the FilenameFilter implementation I can give you such.