[Debian]:Re: Look & Feel Frage
Hallo René,
Vielen Dank für Deine Hilfe. Ich war bei der Suche nach der Lösung schon im
Labyrinth der JavaDoc gefangen. Auf die Idee nach
"SwingUtilities.updateComponentTreeUI( Component c );" zu suchen, wär ich nie
gekommen.
Danke auch für die tolle Erklärung !!!
Jürgen
"R. Mostard" wrote:
> Hallo Jürgen.
> Grundsätzlich kann das L&F mit Hilfe der Klasse UIManager umgeschaltet
> werden, z. B. mit am Anfang der Klasse das import-Statement:
>
> import javax.swing.*;
>
> folgende Codesequenz würde die verfügbaren L&F ermitteln:
>
> UIManager.LookAndFeelInfo[] lufs = UIManager.getInstalledLookAndFeels();
>
> In lufs steht dann ein Array von Instanzen der Klasse
> UIManager.LookAndFeelInfo. Beachte bitte, daß die Klasse wirklich so heißt,
> LookAndFeelInfo alleine genügt nicht, denn diese Klasse ist eine inneren
> Klasse des UIManagers, jedoch public, also öffentlich, so daß wir sie
> benutzen können.
> Die Klasse UIManager.LookAndFeelInfo enthält eine Methode getName(), mit
> der der Name des L&F z. B. einem Benutzer zur Auswahl angeboten werden kann.
> Sie enthält außerdem eine Methode getClassName(), mit der der Klassenname
> des L&F ermittelt werden kann.
> Das Ergebnis von getClassName() kannst Du nun der Methode
>
> try {
> UIManager.setLookAndFeel( klassenname );
> } catch( Exception e ) {
> System.out.println( "Das Setzen des L&F schlug fehl" );
> }
>
> übergeben und damit das L&F setzen. Hier ist zu beachten, daß jede Menge
> Exceptions auftreten können, die abzufangen sind.
> JETZT ist das L&F für SPÄTER instantiierte Componenten aktiv, nicht jedoch
> für die bereits Sichtbaren.
> Aber das hast Du ja bereits.
> Willst Du die bereits sichbaren Komponenten ebenfalls umschalten, so kannst
> Du eine statische Utility-Methode der Klasse SwingUtilities verwenden, diese
> lautet:
>
> SwingUtilities.updateComponentTreeUI( Component c );
>
> Diese Methode schaltet die Komponente c und alle darunter liegenden
> Komponenten auf das neue L&F um. Hast Du bespielsweise einen JFrame mit dem
> Namen myFrame, so kannst Du folgendes aufrufen:
>
> SwingUtilities.updateComponentTreeUI( myFrame );
>
> Der JFrame und sein gesamter Inhalt werden dann umgeschaltet.
>
> Hoffendlich hilft es Dir...
>
> MfG,
> René
>
> Jürgen Unfried schrieb in Nachricht <38862EA4.488A70CD@gmx.net>...
> >Hallo,
> >
> >Ich habe mir ein Fenster mit einem Menüpunkt L&F erstellt, damit der
> >User sein L&F einstellen kann.
> >
> >Es funktioniert ja auch bei allen Frames/Dialogs die ich nacher öffne,
> >nur das eigentliche Fenster ändert sich nicht. Was mache ich falsch?
> >
> >Im Prinzip versuchte ich es folgendermaßen
> > if (actionCommand.equals("Windows") ||
> >actionCommand.equals("X-Windows (Linux)") ||
> >actionCommand.equals("Swing")) {
> > try {
> > if (actionCommand.equals("Windows")) { UIManager.setLookAndFeel
> >("com.sun.java.swing.plaf.windows.WindowsLookAndFeel"); }
> > if (actionCommand.equals("X-Windows (Linux)")) {
> >UIManager.setLookAndFeel
> >("com.sun.java.swing.plaf.motif.MotifLookAndFeel"); }
> > if (actionCommand.equals("Swing")) { UIManager.setLookAndFeel
> >(UIManager.getCrossPlatformLookAndFeelClassName()); }
> > }
> > catch (Exception e) { System.out.println (e); }
> > }
> >
> >danke für Hinweise
> >Jürgen
> >
> >
------------------------------------------------
Um sich aus der Liste auszutragen schicken Sie
bitte eine E-Mail an majordomo@jfl.de die im Body
"unsubscribe debian-user-de <deine emailadresse>"
enthaelt.
Bei Problemen bitte eine Mail an: Jan.Otto@jfl.de
------------------------------------------------
Anzahl der eingetragenen Mitglieder: 760
Reply to: