JFileChooser manuell beenden

fossybeer

Mitglied
Tach zusammen.
Eine Frage hab ich noch und hoffe wieder auf Hilfe der Experten:

Kann ich den JFileChooser manuell beenden?
Also:
Code:
JFileChooser chooser = new JFileChooser();
chooser.setCurrentDirectory(new File("."));			
chooser.showOpenDialog(hf);

Und jetzt soetwas wie:
chooser.dispose();   
chooser.close();
chooser.setVisible(false); geht leider nicht. Ebenso nützt es nichts, wenn der Chooser nicht mit showOpenDialog(hf); angezeigt wird.

Dankeschön...

Hintergrund:
-----------------
Ich nutze das WIndows-Look&Feel. Das hat zur Folge, dass beim Aufruf des FileChooser er recht lange benötigt, bis er die Dateien anzeigt. Dabei meine ich nicht das bekannte Problem der Zip-Registrierung (dazu gibts hier einen anderen Thread), sondern die Tatsache, dass WinXP alle Laufwerke inkl. CD/DVD regelmässig scannt. (Das Verhalten kenne ich auch vom 'Arbeitsplatz'). Danach geht es für längere Zeit ziemlich flott. Daher will ich während eines obligatorischen Splash-Screens die Zeit nutzen, den FileChooser zu öffnen und wieder zu schließen.
 
du muss "fc.cancelSelection()" aus einen anderen Thread heraus aufrufen, da showOpenDialog den aktuellen anhält.

Code:
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JButton;
import javax.swing.JFileChooser;
import javax.swing.JFrame;
import javax.swing.Timer;


public class Test extends JFrame implements ActionListener {
	
	private JButton b1;

	private JFileChooser fc;

	private Timer t = new Timer(5000,this);
	
	public Test() {
		b1 = new JButton("open");
		b1.addActionListener(this);
		fc = new JFileChooser();
		add(b1);
		setVisible(true);
		setSize(400,400);

	}

	public static void main(String[] args) {
		new Test();
		
	}

	@Override
	public void actionPerformed(ActionEvent e) {
		System.out.println(e);
		if(e.getSource()==b1) {
			t.start();
			fc.showOpenDialog(this);
		} else {
			fc.cancelSelection();
			t.stop();
		}
	}
}
 
Zurück