Java - Внешний вид
Чтобы наше приложение выглядело красивее, архитектура Swing изменена на внешний вид вашего приложения или графического интерфейса, разделив каждый компонент на два разных класса: JComponent и ComponentUI. Например, каждый экземпляр JList имеет конкретную реализацию ListUI, которая наследуется от суперкласса ComponentUI., используйте метод: UIManager.setLookAndFeel(LookAndFeel l ) с именем класса LookAndFeel в качестве аргумента.
После изменения необходимо обновить дерево компонентов, вызвав метод SwingUtilities.updateComponentTreeUI(frame);
Example
В этом примере мы объявляем константу LOOKANDFEEL, которая будет содержать одно из следующих допустимых значений: Metal, System, Pattern и GTK. Этот код работает в Eclipse и Netbeans.
import javax.swing.*;Output:
import java.awt.*;
public class LookAndFeelTest extends JFrame{
public LookAndFeelTest(){
//инициализируем lookandfeel
initLookAndFeel();
//убедиться, что обучение применено
JFrame.setDefaultLookAndFeelDecorated(true);
//Создаем и настраиваем window
JFrame frame = new JFrame("SwingApp");
Компонент содержимого = createComponents();
frame.getContentPane().add(contents, BorderLayout.CENTER);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
SwingUtilities.updateComponentTreeUI(frame);
//отображаем window
frame.pack();
frame.setVisible(true);
}
/*
* Укажите внешний вид lookandfeel, установив
* константу LOOKANDFEEL
*/
final static String LOOKANDFEEL = "Metal";
public Component createComponents() {
JButton button = new JButton("Button");
метка компонента "JLabel" = новая метка "JLabel"(LOOKANDFEEL);
панель JPanel = новая панель JPanel(new GridLayout(0, 1));
panel.add(кнопка);
panel.add(метка);
panel.setBorder(BorderFactory.createEmptyBorder(30,30,10,30));
панель возврата;
}
private static void initLookAndFeel() {
String lookAndFeel = null;
if(LOOKANDFEEL != null) {
switch(LOOKANDFEEL){
"Metal" box:lookAndFeel = UIManager.getCrossPlatformLookAndFeelClassName(); < /> поместье;
"System":lookAndFeel = UIManager.getSystemLookAndFeelClassName(); < /> поместье;
"Pattern":lookAndFeel = "com.sun.java.swing.plaf.pattern.PatternLookAndFeel"; < /> поместье;
box "GTK":lookAndFeel = "com.sun.java.swing.plaf.gtk.GTKLookAndFeel"; < /> поместье;
}
try {
UIManager.setLookAndFeel(lookAndFeel);
}
catch (Исключение e) {
e.printStackTrace();
}
}
}
public static void main(String[] args) {
new LookAndFeelTest();
}
}
System
Если вы хотите сохранить исходную тему вашей операционной системы, как в этом примере, которая восстанавливает внешний вид Windows 7.
lookAndFeelFeel = UIManager.getSystemLookAndFeelClassName();Out:
Motif
lookAndFeel="com.sun.java.swing.plaf.motif.MotifLookAndFeel";Out:
References:
Oracle Documentation: Как настроить внешний вид.
Developpez.net: Java GUI:Look & Feel