Im linken Fenster des JFileChooser-Dialogfelds werden auf der linken Seite fünf Schaltflächen angezeigt: Zuletzt verwendete Elemente, Desktop, Eigene Dateien, Computer und Netzwerk. Diese repräsentieren Ansichten des Dateisystems, wie Windows Explorer sie anzeigen würde. Es scheint, dass JFileChooser standardmäßig die Ansicht "Eigene Dateien" verwendet, es sei denn, die Methoden setSelectedFile() oder setCurrentDirectory() werden aufgerufen.So stellen Sie den JFileChooser-Standard für die Computeransicht anstelle von Eigene Dateien ein
Ich versuche, es dem Benutzer einfach zu machen, eines aus einer Anzahl von zugeordneten Netzlaufwerken auszuwählen, die in der "Computer" -Ansicht erscheinen sollen. Gibt es eine Möglichkeit, den JFileChooser so einzustellen, dass er standardmäßig die Ansicht "Computer" öffnet?
Ich habe versucht, ein paar Methoden, um es zu erzwingen, die neueste zu finden, das Stammverzeichnis und legen Sie es als currentDirectory, aber das zeigt den Inhalt dieses Stammknotens. Der neueste Code ist unten enthalten.
private File originalServerRoot;
private class SelectOriginalUnitServerDriveListener implements ActionListener
{
@Override
public void actionPerformed(ActionEvent e)
{
JFileChooser origDriveChooser = new JFileChooser();
origDriveChooser.setFileSelectionMode(JFileChooser.DIRECTORIES_ONLY);
File startFile = new File(System.getProperty("user.dir")); //Get the current directory
// Find System Root
while (!FileSystemView.getFileSystemView().isFileSystemRoot(startFile))
{
startFile = startFile.getParentFile();
}
origDriveChooser.setCurrentDirectory(startFile);
origDriveChooser.setDialogTitle("Select the Mapped Network Drive");
int origDriveChooserRetVal = origDriveChooser.showDialog(contentPane,"Open");
if (origDriveChooserRetVal == JFileChooser.APPROVE_OPTION)
{
originalUnitServerRoot = origDriveChooser.getSelectedFile();
}
}
}
Gibt es eine Methode, die mir die „Computer“ Ansicht standardmäßig (oder das Netzwerk oder eine andere Ansicht) oder eine beliebige Art und Weise auswählen kann, die JFileChooser zu Trick?
BEARBEITEN
Danke für die schnellen und gründlichen Antworten. Ich habe die Antworten von Hovercraft Full Of Eels und Guillaume Polet kombiniert, damit der Code auf jedem Laufwerksbuchstaben funktioniert. Der resultierende Code ist wie folgt. Noch einmal, danke.
private File originalServerRoot;
private class SelectOriginalUnitServerDriveListener implements ActionListener
{
@Override
public void actionPerformed(ActionEvent e)
{
JFileChooser origDriveChooser = new JFileChooser();
origDriveChooser.setFileSelectionMode(JFileChooser.DIRECTORIES_ONLY);
File startFile = new File(System.getProperty("user.dir")); //Get the current directory
// Find System Root
while (!FileSystemView.getFileSystemView().isFileSystemRoot(startFile))
{
startFile = startFile.getParentFile();
}
//Changed the next line
origDriveChooser.setCurrentDirectory(origDriveChooser.getFileSystemView().getParentDirectory(rootFile));
origDriveChooser.setDialogTitle("Select the Mapped Network Drive");
int origDriveChooserRetVal = origDriveChooser.showDialog(contentPane,"Open");
if (origDriveChooserRetVal == JFileChooser.APPROVE_OPTION)
{
originalUnitServerRoot = origDriveChooser.getSelectedFile();
}
}
}
1+ und dito, das funktioniert auch gut. –