Page 1 of 1
JFileChooser setDialog(/*type*/) και δικαιώματα
Posted: Sun Mar 08, 2009 7:39 pm
by Spy
Σας παραθέτω τον κώδικα:
- Spoiler: εμφάνιση/απόκρυψη
[code]
import java.io.File;
import javax.swing.JFileChooser;
import javax.swing.JFrame;
public class ChooseFile {
private JFrame extern = new JFrame();
private JFileChooser chooser = new JFileChooser();
public ChooseFile() {
extern.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
chooser.setCurrentDirectory(new File("."));
chooser.setFileHidingEnabled(false);
}//ChooseFile consrt
private void setFilter(){
chooser.setFileFilter(new javax.swing.filechooser.FileFilter() {
public boolean accept(File f) {
return f.getName().toLowerCase().endsWith(".txt") || f.isDirectory();
}
public String getDescription() {
return "Text Files";
}
});
}//setFilter
public String getApath() {
chooser.resetChoosableFileFilters();
this.setFilter();
chooser.setFileSelectionMode(JFileChooser.FILES_ONLY);
int r = chooser.showOpenDialog(extern);
if (r == JFileChooser.APPROVE_OPTION) {
String name = chooser.getSelectedFile().getPath();
extern.dispose();
return name;
}//if
return null;
}//getApath
public String getDestpath() {
chooser.resetChoosableFileFilters();
chooser.setDialogType(JFileChooser.SAVE_DIALOG); //*********************
chooser.setFileSelectionMode(JFileChooser.DIRECTORIES_ONLY);
int r = chooser.showOpenDialog(extern);
if (r == JFileChooser.SAVE_DIALOG) {
String name = chooser.getSelectedFile().getPath();
extern.dispose();
return name;
}//if
return null;
}//getApath
public static void main(String args[]){
ChooseFile ch = new ChooseFile();
try {
System.out.println("Open "+ch.getApath());
}catch (NullPointerException nl){}
try{
System.out.println("Destination "+ch.getDestpath());
}catch (NullPointerException nl){}
System.exit(0);
}//main
}//ChooseFile
[/code]
1η απορία:
ByDefault το dialog του FileChooser είναι για επιλογή αρχείου από κάποιο φάκελο
JFileChooser.OPEN_DIALOG
Όταν θέλω να αλλάξω το dialog και να το κάνω για αποθήκευση αρχείου "Save to"
Code: Select all
chooser.setDialogType(JFileChooser.SAVE_DIALOG);
το κουμπί παραμένει "Open". Γιατί γίνεται αυτό;
2η απορία:
Με το JFileChooser δεν μπορώ να δημιουργήσω new Folder σε οποιαδήποτε directory πχ: Στα Vista: Στο Desktop δεν μπορείς να κάνεις new Folder, όπως επίσης και στα Documents, αλλά στον Φάκελο του χρήστη "USERXXXXX" μπορείς.
Γιατί συμβαίνει αυτό;
Re: JFileChooser setDialog(/*type*/) και δικαιώματα
Posted: Sun Mar 08, 2009 8:55 pm
by cyberpython
Για την 1η ερώτηση:
Δοκίμασες με
Επίσης το παρακάτω:
Code: Select all
chooser.showDialog(parent, "Save");
θα πρέπει να δώσει τον τίτλο "Save" και στο παράθυρο και στο κουμπί.
Re: JFileChooser setDialog(/*type*/) και δικαιώματα
Posted: Sun Mar 08, 2009 9:11 pm
by Spy
Ευχαριστώ cyberpython, απλά δεν είχα προσέξει το showOpenDialog....
Τώρα ψάχνω να βρω γιατί δεν επιτρέπει την δημιουργία φακέλων σε οποιαδήποτε directories!
Re: JFileChooser setDialog(/*type*/) και δικαιώματα
Posted: Sun Mar 08, 2009 9:18 pm
by cyberpython
Άδικα κουράζεσαι... Είναι bug...
Υπάρχει "λύση" - δες εδώ:
http://bugs.sun.com/bugdatabase/view_bu ... id=4847375