[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

[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: