Java - Erscheinungsbild
Um unsere Anwendung hübscher aussehen zu lassen, wurde die Swing-Architektur entwickelt, um das Erscheinungsbild Ihrer Anwendung oder GUI zu ändern, indem jede Komponente in zwei verschiedene Klassen unterteilt wird: JComponent und ComponentUI. Beispielsweise verfügt jede Instanz von JList über eine konkrete ListUI-Implementierung, die von der ComponentUI.-Superklasse erbt, verwenden Sie die Methode: UIManager.setLookAndFeel(LookAndFeel l ) mit dem Klassennamen LookAndFeel als Argument.
Nach der Änderung müssen Sie den Komponentenbaum aktualisieren, indem Sie die Methode aufrufen SwingUtilities.updateComponentTreeUI(frame);
Example
In diesem Beispiel deklarieren wir eine LOOKANDFEEL-Konstante, die einen der folgenden gültigen Werte enthält: Metal, System, Pattern und GTK. Dieser Code funktioniert unter Eclipse und Netbeans.
import javax.swing.*;Output:
import java.awt.*;
public class LookAndFeelTest extends JFrame{
public LookAndFeelTest(){
//initialize lookandfeel
initLookAndFeel();
//Stellen Sie sicher, dass das Lernen angewendet wurde
JFrame.setDefaultLookAndFeelDecorated(true);
//Erstellen und konfigurieren Sie das Fenster
JFrame-Frame = new JFrame("SwingApp");
Komponenteninhalt = createComponents();
frame.getContentPane().add(contents, BorderLayout.CENTER);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
SwingUtilities.updateComponentTreeUI(Rahmen);
//Anzeigefenster
frame.pack();
frame.setVisible(true);
}
/*
* Geben Sie das zu verwendende Erscheinungsbild an, indem Sie
* die LOOKANDFEEL-Konstante
*/
final static String LOOKANDFEEL = "Metal";
public Komponente createComponents() {
JButton button = new JButton("Button");
JLabel label = new JLabel(LOOKANDFEEL);
JPanel-Bedienfeld = new JPanel(new GridLayout(0, 1));
panel.add(button);
panel.add(label);
panel.setBorder(BorderFactory.createEmptyBorder(30,30,10,30));
Rückgabefeld;
}
private static void initLookAndFeel() {
String lookAndFeel = null;
if(LOOKANDFEEL != null) {
switch(LOOKANDFEEL){
"Metal" box:lookAndFeel = UIManager.getCrossPlatformLookAndFeelClassName();
Nachlass;
"System":lookAndFeel = UIManager.getSystemLookAndFeelClassName();
Nachlass;
"Muster":lookAndFeel = "com.sun.java.swing.plaf.pattern.PatternLookAndFeel";
Nachlass;
box "GTK":lookAndFeel = "com.sun.java.swing.plaf.gtk.GTKLookAndFeel";
Nachlass;
}
try {
UIManager.setLookAndFeel(lookAndFeel);
}
catch (Ausnahme e) {
e.printStackTrace();
}
}
}
public static void main(String[] args) {
new LookAndFeelTest();
}
}
System
Wenn Sie das ursprüngliche Design Ihres Betriebssystems wie in diesem Beispiel beibehalten möchten, wird das Erscheinungsbild von Windows 7.
lookAndFeel = UIManager.getSystemLookAndFeelClassName();Out:
Motif
lookAndFeel="com.sun.java.swing.plaf.motif.MotifLookAndFeel";Out:
Referenzen:
Oracle-Dokumentation: So legen Sie Look and Feel fest.
Developpez.net: Java GUI:Look & Fühlen