# JFileChooser aussehen



## kor (21. Nov 2011)

Hallo

Mein JFileChooser sieht wie im angehängten Bild (IST) aus. Ich möchte aber, dass er vom Style her mehr so wie die SOLL Version aussieht. Wie kann ich dieses verändern?

Lg


----------



## Michael... (21. Nov 2011)

Das Aussehen von Komponenten wird in Java durch "Look and Feels" bestimmt.

Wenn Du zum Programmstart das Window LaF setzt, bekommst Du einen solchen FileChooser. Allerdings hat das LaF Auswirkungen auf Deine gesamte Anwendung.
Bsp.:


```
try {
	    UIManager.setLookAndFeel("com.sun.java.swing.plaf.windows.WindowsLookAndFeel");
	} catch (Exception e) {
		e.printStackTrace();
	}
	new JFileChooser().showOpenDialog(null);
```


----------



## kor (21. Nov 2011)

hi

danke für deine antwort!

gibt es wo eine zusammenstellung welche look and feel es gibt. 
ich habe nur diese zwei gefunden die bei mir am sastem laufen:
com.sun.java.swing.plaf.motif.MotifLookAndFeel
com.sun.java.swing.plaf.windows.WindowsLookAndFeel

lg


----------



## L-ectron-X (21. Nov 2011)

Das WindowsLookAndFeel gibts aus lizenzrechtlichen Gründen nur unter Windows.
Unter anderen Betriebssystemen bekommt der JFileChooser dann wieder das MetalLookAndFeel.
Daher ist die explizite Angabe des WindowsLookAndFeel, wie in deinem Fall, fast immer der verkehrte Weg.

Wenn man möchte, dass sich ein Programm für den Beutzer auf sämtlichen Plattformen so verhält, wie er es von einem Programm des Systems kennt und erwartet sollte ein etwas anderer Code verwendet werden:


```
try {
  UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());
}
catch(Exception e) {
  e.printStackTrace();
}
```

Zu deiner Frage:

```
UIManager.LookAndFeelInfo[] lafs = UIManager.getInstalledLookAndFeels();
for(int i = 0; i < lafs.length; i++) {
  System.out.println(lafs[i].getName());
}
```
Gibt dir alle auf deinem Programm installierten bzw. in deinem Programm verwendbaren LookAndFeels auf der Konsole aus.

Weitere LAFs findest du z.B. auf Home - javootoo.com


----------



## jgh (21. Nov 2011)

oder man nimmt gleich den FileDialog...


```
import java.awt.FileDialog;
import javax.swing.JFrame;

class Fu extends JFrame {

	public static void main(String args[]) {
		new Fu().meineMethode();
	}

	public void meineMethode() {
		FileDialog fd = new FileDialog(this,
				"Das ist der native FileChooser :-)", FileDialog.SAVE);
		fd.setVisible(true);

	}
}
```


----------



## L-ectron-X (21. Nov 2011)

Im Allgemeinen vermeidet man aber das Mischen von AWT- mit Swing-Komponenten.


----------



## jgh (21. Nov 2011)

na ja, grundsätzlich gebe ich dir recht, bei einem modalen Dialog ist es  imho aber recht egal, ob man vorher etwas mit swing, oder awt gemacht hat.

und für gewöhnte  windows-user ist der native FileDialog ein Segen, im Gegensatz zum sehr gewöhnungsbedürftigen JFileChooser.


----------

