Swing-Darstellung in Windows-Optik?

Status
Nicht offen für weitere Antworten.

schmalhans

Bekanntes Mitglied
Schönen guten Morgen miteinander,

ich habe eine Frage zu den Swing-Komponenten. Leider konnte mir die API nicht weiterhelfen.
Deshalb meine Frage hier:

Kann man die Optik von Swing anpassen/verändern?
z.B. wie die standartisierte Windowsoberfläche? Oder in irgendeine andere?


Danke schon jetzt.

Gruß
schmalhans
 

schmalhans

Bekanntes Mitglied
Sach ich ma jetzt schon konkretes Danke. ;)

Hab auch fleißig was gefunden. Nur bleibt noch ne Frage offen und zwar habe ich z.B. folgendes gefunden:

Code:
   String 
      lafName1 = "javax.swing.plaf.metal.MetalLookAndFeel", 
       lafName2 = "com.sun.java.swing.plaf.motif.MotifLookAndFeel", 
       lafName3 = "com.sun.java.swing.plaf.windows.WindowsLookAndFeel";

Sind die Strings Inet-Addresse oder woher kommen die?
 
B

Beni

Gast
Diese Strings sind die Klassennamen (inkl Package) der LookAndFeels.

Guck dir den UIManager an.

Über die Methode "getInstalledLookAndFeels" kriegst du alle verfügbaren LookAndFeels, und mit "setLookAndFeel" kannst du ein LaF setzen (jede JComponent die du dann neu erstellst, oder bei der du "updateUI" aufrufst, kriegt das neue LaF. Siehe auch "SwingUtilities.updateComponentTreeUI").
 

L-ectron-X

Gesperrter Benutzer
Oder mit
Code:
try {
  javax.swing.UIManager.setLookAndFeel(javax.swing.UIManager.getSystemLookAndFeelClassName());
  SwingUtilities.updateComponentTreeUI(this);
}
catch(ClassNotFoundException e) { System.out.println("Klasse nicht gefunden!"); }
catch(InstantiationException e) { System.out.println("Klasse konnte nicht instanziiert werden!"); }
catch(IllegalAccessException e) { System.out.println("Zugriff auf diese Klasse nicht erlaubt!"); }
catch(UnsupportedLookAndFeelException e) { System.out.println("Nicht unterstütztes LnF!"); }
kannst du die Oberfläche des Systems benutzen, auf dem deine gerade Anwendung läuft.
 

schmalhans

Bekanntes Mitglied
danke, schonmal.
werd mich morgen damit auseinander setzen, da es nun ZUM BADESEE geht! Muss unbedingt das Wetter genießen! ;)

Schönes Wochenende wünsch ich den Herren.
 

schmalhans

Bekanntes Mitglied
Habe die Sachen mal durchprobiert. Habe aber nun aber einen kleinen Fehler.

Er zeigt mir alle möglichen LaF an, die installiert sind.
wenn ich aber eins setzen möchte ignoriert es einfach.

Der Code von L-ectron-X hat funktionert für die Windows-Optik. Aber eine andere geht nicht. Hat jemand ne Ahnung, wieso?

Ich setz sie folgender Maßen in der init():

blbla.setLockandFeel("javax........");
SwingUtilities.updateComponentTreeUI(this);
 

Seraph

Aktives Mitglied
Also hier ist ein Beispiel aus dem JavaBuch von Guido Krüger. So sind alle drei Layouts als Beispielprogramm vereint. Suche Dir das mit Windows aus und binde es in Dein Programm ein.

Code:
import java.awt.event.*;
import java.awt.*;
import javax.swing.*;

public class Listing3501
extends JFrame
implements ActionListener
{
  private static final String[] MONTHS = {
    "Januar",    "Februar", "März",     "April",
    "Mai",       "Juni",    "Juli",     "August",
    "September", "Oktober", "November", "Dezember"
  };

  public Listing3501()
  {
    super("Mein erstes Swing-Programm");
    //Panel zur Namenseingabe hinzufügen
    JPanel namePanel = new JPanel();
    JLabel label = new JLabel(
      "Name:",
      new ImageIcon("triblue.gif"), 
      SwingConstants.LEFT
    );
    namePanel.add(label);
    JTextField tf = new JTextField(30);
    tf.setToolTipText("Geben Sie ihren Namen ein");
    namePanel.add(tf);
    namePanel.setBorder(BorderFactory.createEtchedBorder()); 
    getContentPane().add(namePanel, BorderLayout.NORTH); 
    //Monatsliste hinzufügen
    JList list = new JList(MONTHS);
    list.setToolTipText("Wählen Sie ihren Geburtsmonat aus");
    getContentPane().add(new JScrollPane(list), BorderLayout.CENTER); 
    //Panel mit den Buttons hinzufügen
    JPanel buttonPanel = new JPanel();
    JButton button1 = new JButton("Metal");
    button1.addActionListener(this);
    button1.setToolTipText("Metal-Look-and-Feel aktivieren");
    buttonPanel.add(button1);
    JButton button2 = new JButton("Motif");
    button2.addActionListener(this);
    button2.setToolTipText("Motif-Look-and-Feel aktivieren");
    buttonPanel.add(button2);
    JButton button3 = new JButton("Windows");
    button3.addActionListener(this);
    button3.setToolTipText("Windows-Look-and-Feel aktivieren");
    buttonPanel.add(button3);
    buttonPanel.setBorder(BorderFactory.createEtchedBorder()); 
    getContentPane().add(buttonPanel, BorderLayout.SOUTH);
    //Windows-Listener
    addWindowListener(new WindowClosingAdapter(true));
  }

  public void actionPerformed(ActionEvent event)
  {
    String cmd = event.getActionCommand();
    try {
      //PLAF-Klasse auswählen 
      String plaf = "unknown";
      if (cmd.equals("Metal")) {
        plaf = "javax.swing.plaf.metal.MetalLookAndFeel";
      } else if (cmd.equals("Motif")) {
        plaf = "com.sun.java.swing.plaf.motif.MotifLookAndFeel";
      } else if (cmd.equals("Windows")) {
        plaf = "com.sun.java.swing.plaf.windows.WindowsLookAndFeel";
      }
      //LAF umschalten
      UIManager.setLookAndFeel(plaf);
      SwingUtilities.updateComponentTreeUI(this);
    } catch (UnsupportedLookAndFeelException e) {
      System.err.println(e.toString());
    } catch (ClassNotFoundException e) {
      System.err.println(e.toString());
    } catch (InstantiationException e) {
      System.err.println(e.toString());
    } catch (IllegalAccessException e) {
      System.err.println(e.toString());
    }
  }

  public static void main(String[] args)
  {
    Listing3501 frame = new Listing3501();
    frame.setLocation(100, 100);
    frame.pack();
    frame.setVisible(true);
  }
}

Schöne Grüße
Meer.
 

schmalhans

Bekanntes Mitglied
Guten Morgen,

ja, das ist mir klar. Denn es heißt ja:

javax.swing.UIManager.getSystemLookAndFeelClassName());

Nur so eine Frage: Wieviel LaF gibt es eigentlich offiziell und kann man die irgendwo aufgelistet sehen.
Hab da leider nix gefunden.

Danke.

Gruß aus der regnerischen Nürnbger :([/b]
 

L-ectron-X

Gesperrter Benutzer
Soweit ich weiß, sind 3 LAFs mit dem J2SE von Hause aus möglich:
MetalLookAndFeel
MotivLookAndFeel
WindowsLookAndFeel

Es gibts aber noch viele weitere LAFs zum Download.
 

schmalhans

Bekanntes Mitglied
Danke schonmal für die Infos.
Muss dann das verwende LaF auch beim User installiert sein um es zu verwenden, oder ist das dann im JAVA-Programm "dabei"?
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
D Darstellung in Swing Java Basics - Anfänger-Themen 6
J SWING UI Designer und zeichnen Java Basics - Anfänger-Themen 4
G Maven Swing: Wie verwende ich WindowListener ? Java Basics - Anfänger-Themen 2
C Threads und Swing Java Basics - Anfänger-Themen 9
A Swing: Raumshiff Java Basics - Anfänger-Themen 3
U Warum kriege ich hier eine nullpointer exception, sehe den Fehler nicht (swing) Java Basics - Anfänger-Themen 1
nbergmann Wo ist javax.swing.JOptionPane gespeichert? Java Basics - Anfänger-Themen 4
StevenGG Java swing "New Integer" Java Basics - Anfänger-Themen 5
T Java Swing - Dreieck zeichnen mit verschiedenen Variablen Java Basics - Anfänger-Themen 8
O ImageIcon, Swing Java Basics - Anfänger-Themen 1
O Swing JPanel Java Basics - Anfänger-Themen 4
F Swing - Fehler - Paint Methode Java Basics - Anfänger-Themen 7
M Input/Output Java Swing: Prüft ob Text aus JTextField ausschließlich Integer enthält Java Basics - Anfänger-Themen 15
mobaer Swing Timer stoppen Java Basics - Anfänger-Themen 3
M Wie kann ich hier ein Textfeld hinzufügen Java Swing? Java Basics - Anfänger-Themen 1
M SpielMenü mit Swing Java Basics - Anfänger-Themen 3
M Wie kann ich eine Eingabe im Java-Swing übergeben? Java Basics - Anfänger-Themen 1
N javax swing JOptionPane Hilfe Java Basics - Anfänger-Themen 3
H Swing Button hat falsche Größe Java Basics - Anfänger-Themen 5
C Der Swing Layout-Manager hasst mich Java Basics - Anfänger-Themen 4
M Java swing im Browser starten Java Basics - Anfänger-Themen 0
M JavaFX in Swing-Applikationen einbetten Java Basics - Anfänger-Themen 5
Z Threads SWING mit EventQueue.invokeLater Java Basics - Anfänger-Themen 1
P JDK installieren javac behauptet Javax.swing existiert nicht Java Basics - Anfänger-Themen 8
K Ascii Converter mit Swing Java Basics - Anfänger-Themen 4
b1ck Interface Verständnisfrage zum GUI mit "swing" Java Basics - Anfänger-Themen 1
N Erste Schritte Karte in SWING Application Java Basics - Anfänger-Themen 4
D Mehrfacherfassung in Swing GUI Java Basics - Anfänger-Themen 12
D Datum aus Swing in MySQL DB speichern Java Basics - Anfänger-Themen 22
R warum kann System.out.println(..) etwas, was Swing-Elemente Nicht können ? Java Basics - Anfänger-Themen 11
J Input/Output Charset Swing- Eingaben? Java Basics - Anfänger-Themen 8
S JUnit - Swing- Anwendung wird nicht neu gestartet Java Basics - Anfänger-Themen 0
Q Threads Threads in Swing Anwendungen Java Basics - Anfänger-Themen 5
B Swing intstalliert Eclips{}, mackiert Rot Java Basics - Anfänger-Themen 6
U Java Swing Timer mit ButtonKlick starten u. nach 12 Sekunden Befehl ausführen Java Basics - Anfänger-Themen 7
S Input/Output In Java Swing auf Button warten? Java Basics - Anfänger-Themen 9
N Problem mit Swing Textfeld und Zugriff aus anderer Klasse Java Basics - Anfänger-Themen 6
G Performance - höhere Anzahl Swing Elemente Java Basics - Anfänger-Themen 5
B Java Swing "Zeichenfläche" Java Basics - Anfänger-Themen 1
O Alternative zum swing-Timer Java Basics - Anfänger-Themen 5
F Swing Applet: mehrere Komponenten hinzufügen Java Basics - Anfänger-Themen 1
F Platzieren von Komponenten in Swing Applet funktioniert nicht Java Basics - Anfänger-Themen 3
P Hintergrundbild in Swing einfügen Java Basics - Anfänger-Themen 3
C Swing frage Java Basics - Anfänger-Themen 8
T Rechenprogramm mit Swing Java Basics - Anfänger-Themen 3
K Swing Darstellungsproblem Java Basics - Anfänger-Themen 11
G Verständnisproblem mit swing Java Basics - Anfänger-Themen 6
P Swing - Blackscreen Java Basics - Anfänger-Themen 10
Y Random-Objekt und Swing Java Basics - Anfänger-Themen 4
M Klassen Hilfe bei SWING Java Basics - Anfänger-Themen 5
S GUI Problem: Swing Java Basics - Anfänger-Themen 8
M Javax.swing - Timer(2 Button) Java Basics - Anfänger-Themen 17
J Timer - Swing Java Basics - Anfänger-Themen 5
B Erste Schritte Primefaces -> Swing Gui Java Basics - Anfänger-Themen 7
T Swing, SWT oder JavaFX Java Basics - Anfänger-Themen 8
S Programmoberfläche mit Java-Swing - Herangehensweise Java Basics - Anfänger-Themen 20
E Fragen zu paintXXX in Swing Java Basics - Anfänger-Themen 7
D Erste Schritte bash-Befehl mit Swing ausführen Java Basics - Anfänger-Themen 8
A Alternative zum manuellen Swing programmieren?? Java Basics - Anfänger-Themen 4
S Android fuer Swing-Kenner..? Java Basics - Anfänger-Themen 6
J Swing Timer Java Basics - Anfänger-Themen 3
B Seltsamer Fehler in SWING anwendung Java Basics - Anfänger-Themen 2
D GPS Tracker Swing Java Basics - Anfänger-Themen 2
L Erste Schritte Swing oder SWT Paint mit Grafikkarte? Java Basics - Anfänger-Themen 7
B Einstieg in swing GUI Java Basics - Anfänger-Themen 7
S Swing Eingabe Erzwingen Java Basics - Anfänger-Themen 3
S Swing JTable Java Basics - Anfänger-Themen 7
Z Input/Output Programm mit Swing umsetzen Java Basics - Anfänger-Themen 6
K Eclipse wie Swing per Drag und Drop erstellen Java Basics - Anfänger-Themen 2
V Dropdown Button in einer GUI (Java Swing) Java Basics - Anfänger-Themen 12
S Swing, Gridbaglayout Panel in Panel;funzt nicht!! Java Basics - Anfänger-Themen 3
O swing komponenten werden nicht angezeigt Java Basics - Anfänger-Themen 6
S Swing, Panel über Hintergrundbild!! Java Basics - Anfänger-Themen 6
P Im Fenster bleiben (swing) Java Basics - Anfänger-Themen 16
M Einfacher Swing Wizard Java Basics - Anfänger-Themen 3
E Swing FileWrite?? Java Basics - Anfänger-Themen 3
S Umlaute in Swing-GUI Java Basics - Anfänger-Themen 8
K Drop-down Menü (swing) Java Basics - Anfänger-Themen 4
M Timer-Thread in Swing öffnet jedes Mal ein neues Fenster Java Basics - Anfänger-Themen 6
M Swing Klasse auch per Kommandozeile starten? Java Basics - Anfänger-Themen 2
S JAVA Swing Eventlistener Java Basics - Anfänger-Themen 11
P Swing - Welche Klasse für ausgeben von Ergebnissen? Java Basics - Anfänger-Themen 3
V Swing Componenten werden auf Mac nicht angezeigt Java Basics - Anfänger-Themen 19
J Überfordert mit Swing Java Basics - Anfänger-Themen 5
B Baum > Baum-Swing Java Basics - Anfänger-Themen 4
B Bei Swing weg vom North-West-South-East-Prinzip Java Basics - Anfänger-Themen 2
K Swing Fenster jede sec.neuzeichnen Java Basics - Anfänger-Themen 14
F Werteübergabe in Swing Formularen (gui Builder) Java Basics - Anfänger-Themen 9
L Swing GridBagLayout Java Basics - Anfänger-Themen 3
K Bild als Hintergrund in einem Swing Fenster Java Basics - Anfänger-Themen 21
J unterschied zwischen awt und swing Java Basics - Anfänger-Themen 6
C Swing i.V.m. Threads Java Basics - Anfänger-Themen 2
J XML Viewer for Swing Java Basics - Anfänger-Themen 6
Y Anfänger Hausaufgabe... Swing Java Basics - Anfänger-Themen 6
W Zeichnen in Swing Java Basics - Anfänger-Themen 7
B Swing Applikation mit mehreren Klassen Java Basics - Anfänger-Themen 2
C Swing, Buttons Wert zuweisen Java Basics - Anfänger-Themen 3
Luk10 Swing timer und Threads Java Basics - Anfänger-Themen 4
J Java GUI in Swing und das MVC Paradigma Java Basics - Anfänger-Themen 3
M Swing Java Basics - Anfänger-Themen 7

Ähnliche Java Themen

Neue Themen


Oben