Java Swing cho phép chúng tôi tùy chỉnh GUI bằng cách thay đổi giao diện (L&F) . Giao diện xác định diện mạo chung của các thành phần và cảm giác xác định hành vi của chúng. L &F là các lớp con của LookAndFeel lớp và mỗi L&F được xác định bằng tên lớp đủ điều kiện của nó . Theo mặc định, L&F được đặt thành Swing L&F (Metal L&F)
Để đặt L&F theo chương trình, chúng ta có thể gọi phương thức setLookAndFeel () của UIManager lớp. Lệnh gọi setLookAndFeel phải được thực hiện trước khi khởi tạo bất kỳ lớp Java Swing nào, nếu không, Swing L&F mặc định sẽ được tải.
Cú pháp
public static void setLookAndFeel(LookAndFeel newLookAndFeel) throws UnsupportedLookAndFeelException
Ví dụ
import java.awt.*; import java.awt.event.*; import javax.swing.*; public class LookAndFeelTest extends JFrame implements ActionListener { private JRadioButton windows, metal, motif, ; private ButtonGroup bg; public LookAndFeelTest() { setTitle("Look And Feels"); windows = new JRadioButton("Windows"); windows.addActionListener(this); metal = new JRadioButton("Metal"); metal.addActionListener(this); motif = new JRadioButton("Motif"); motif.addActionListener(this); bg = new ButtonGroup(); bg.add(windows); bg.add(metal); bg.add(motif); setLayout(new FlowLayout()); add(windows); add(metal); add(motif); setSize(400, 300); setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); setLocationRelativeTo(null); setVisible(true); } @Override public void actionPerformed(ActionEvent ae) { String LAF; if(ae.getSource() == windows) LAF = "com.sun.java.swing.plaf.windows.WindowsLookAndFeel"; else if(ae.getSource() == metal) LAF = "javax.swing.plaf.metal.MetalLookAndFeel"; else LAF = "com.sun.java.swing.plaf.motif.MotifLookAndFeel"; try { UIManager.setLookAndFeel(LAF); SwingUtilities.updateComponentTreeUI(this); } catch (Exception e) { System.out.println("Error setting the LAF..." + e); } } public static void main(String args[]) { new LookAndFeelTest(); } }
Đầu ra