Je suis un débutant à Java. J'essaie de choisir dynamiquement l'emplacement du fichier pour enregistrer le résultat de mon projet (à lancer au tout début de mon projet). J'ai travaillé avec quelques exemples FileDialog, mais chacun d'eux me permet de choisir un fichier et non un dossier.
Quelqu'un peut-il m'aider s'il vous plaît avec un exemple (ou) un lien vers un pour le même?
Vous pouvez essayer quelque chose comme ça (comme indiqué ici: Sélectionnez un répertoire avec un JFileChooser ):
import javax.swing.*;
import Java.awt.event.*;
import Java.awt.*;
import Java.util.*;
public class DemoJFileChooser extends JPanel
implements ActionListener {
JButton go;
JFileChooser chooser;
String choosertitle;
public DemoJFileChooser() {
go = new JButton("Do it");
go.addActionListener(this);
add(go);
}
public void actionPerformed(ActionEvent e) {
chooser = new JFileChooser();
chooser.setCurrentDirectory(new Java.io.File("."));
chooser.setDialogTitle(choosertitle);
chooser.setFileSelectionMode(JFileChooser.DIRECTORIES_ONLY);
//
// disable the "All files" option.
//
chooser.setAcceptAllFileFilterUsed(false);
//
if (chooser.showOpenDialog(this) == JFileChooser.APPROVE_OPTION) {
System.out.println("getCurrentDirectory(): "
+ chooser.getCurrentDirectory());
System.out.println("getSelectedFile() : "
+ chooser.getSelectedFile());
}
else {
System.out.println("No Selection ");
}
}
public Dimension getPreferredSize(){
return new Dimension(200, 200);
}
public static void main(String s[]) {
JFrame frame = new JFrame("");
DemoJFileChooser panel = new DemoJFileChooser();
frame.addWindowListener(
new WindowAdapter() {
public void windowClosing(WindowEvent e) {
System.exit(0);
}
}
);
frame.getContentPane().add(panel,"Center");
frame.setSize(panel.getPreferredSize());
frame.setVisible(true);
}
}
Oracles Java Tutoriel pour les sélecteurs de fichiers: http://docs.Oracle.com/javase/tutorial/uiswing/components/filechooser.html
Remarque getSelectedFile()
renvoie le dossier sélectionné, malgré son nom. getCurrentDirectory()
renvoie le répertoire du dossier sélectionné.
import javax.swing.*;
public class Example
{
public static void main(String[] args)
{
JFileChooser f = new JFileChooser();
f.setFileSelectionMode(JFileChooser.DIRECTORIES_ONLY);
f.showSaveDialog(null);
System.out.println(f.getCurrentDirectory());
System.out.println(f.getSelectedFile());
}
}
essayez quelque chose comme ça
JFileChooser chooser = new JFileChooser();
chooser.setCurrentDirectory(new Java.io.File("."));
chooser.setDialogTitle("select folder");
chooser.setFileSelectionMode(JFileChooser.DIRECTORIES_ONLY);
chooser.setAcceptAllFileFilterUsed(false);
J'ai trouvé un bon exemple de ce dont vous avez besoin dans ce lien .
import javax.swing.JFileChooser;
public class Main {
public static void main(String s[]) {
JFileChooser chooser = new JFileChooser();
chooser.setCurrentDirectory(new Java.io.File("."));
chooser.setDialogTitle("choosertitle");
chooser.setFileSelectionMode(JFileChooser.DIRECTORIES_ONLY);
chooser.setAcceptAllFileFilterUsed(false);
if (chooser.showOpenDialog(null) == JFileChooser.APPROVE_OPTION) {
System.out.println("getCurrentDirectory(): " + chooser.getCurrentDirectory());
System.out.println("getSelectedFile() : " + chooser.getSelectedFile());
} else {
System.out.println("No Selection ");
}
}
}
Avec JFileChooser est possible utiliser ceci:
UIManager.setLookAndFeel("com.Sun.Java.swing.plaf.windows.WindowsLookAndFeel");
pour avoir un look and feel comme Windows.
pour les autres paramètres, voir ici: https://docs.Oracle.com/javase/tutorial/uiswing/lookandfeel/plaf.html#available