Dateiauswahldialog

Status
Nicht offen für weitere Antworten.

xerberuz

Bekanntes Mitglied
Hi. Gibts es eine Möglichkeit dem Dateiauswahldialog zu sagen, einen Ordner als Wurzelverzeichnis zu nehmen, so dass nur untergeordnete Elemente ausgewählt werden können?
 

xerberuz

Bekanntes Mitglied
Ich hab mir mal ein paar gedanken gemacht und bin auf folgende Lösung gekommen. Der Nachteil ist alle Buttons die zum Arbeitsplatz oder ähnlichem Verweisen sind noch aktiv. Kann man die abschalten?

Code:
package util;

import java.io.File;

import javax.swing.JFileChooser;

public class JFileChooserRoot extends JFileChooser
{

	/**
	 * 
	 */
	private static final long serialVersionUID = -3990155911664621222L;
	
	private File RootDirectory;
	private boolean isInitialized = false;
	
	
	public JFileChooserRoot(File RootDirectory)
	{
		super(RootDirectory);
		this.RootDirectory = RootDirectory;
	}
	
	@Override
    public void setCurrentDirectory(File dir) 
    {
    	File oldValue = super.getCurrentDirectory();
    	
    	if (dir != null && !dir.exists()) {
    	    dir = super.getCurrentDirectory();
    	}
    	if (dir == null) {
    	    dir = getFileSystemView().getDefaultDirectory();
    	}
    	if (super.getCurrentDirectory() != null) {
    	    /* Verify the toString of object */
    	    if (super.getCurrentDirectory().equals(dir)) {
    		return;
    	    }
    	}
    	
    	File prev = null;
    	while (!isTraversable(dir) && prev != dir) {
    	    prev = dir;
    	    dir = getFileSystemView().getParentDirectory(dir);
    	}
    	
    	if(isInitialized)
    	{
    		if(!dir.getPath().startsWith(RootDirectory.getPath()))
    		{
    			return;
    		}
    	}
    	else
    	{
    		isInitialized = true;
    	}
    	
    	super.setCurrentDirectory(dir);

    	firePropertyChange(DIRECTORY_CHANGED_PROPERTY, oldValue, super.getCurrentDirectory());
    }
}
 
Status
Nicht offen für weitere Antworten.

Neue Themen


Oben