JFileChooser için Windows Bak ve Hissedin'de, JFileChooser iletişim kutusunun sol tarafı beş düğme gösterir: Son Öğeler, Masaüstü, Belgelerim, Bilgisayar ve Ağ. Bunların her biri, Windows Gezgini bunları gösterecek şekilde dosya sistemi görünümlerini temsil eder. SetSelectedFile() veya setCurrentDirectory() yöntemleri çağrılmadıkça JFileChooser varsayılan olarak Belgelerim Görünümüne gider.JFileChooser Varsayılanı Belgelerim yerine Bilgisayar Görünümüne nasıl yapılır
Kullanıcının, "Bilgisayar" Görünümü'nde görünmesi gereken bir dizi eşlenmiş ağ sürücüsünden birini seçmesini kolaylaştırmaya çalışıyorum. JFileChooser'ın varsayılan olarak "Bilgisayar" görünümünü açmasını sağlamanın bir yolu var mı?
Bunu yapmak için birkaç yöntem denedim, en son kök dizini bulmak ve currentDirectory olarak ayarlamak ancak bu, bu kök düğümünün içeriğini gösterir. En son kod aşağıda yer almaktadır.
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();
}
}
}
beni varsayılan olarak "Bilgisayar" görünümü (Ağı'nda veya herhangi bir başka görünümü) seçmenize olanak tanıyan bir yöntem veya JFileChooser kandırmak için herhangi bir yolu var mı? hızlı ve eksiksiz yanıtlar için
DÜZENLEME
teşekkürler. Eels'in Hovercraft'ını ve Guillaume Polet'in kodları herhangi bir sürücü mektubunda çalışmasını denemek için bir araya getirdim. Elde edilen kod aşağıdaki gibidir. Bir kez daha teşekkürler.
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+ ve ditto, bu da iyi çalışıyor. –