Computer >> Máy Tính >  >> Lập trình >> Java

Làm thế nào để thiết lập giao diện khác biệt cho các thành phần trong Java?


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

Làm thế nào để thiết lập giao diện khác biệt cho các thành phần trong Java?

Làm thế nào để thiết lập giao diện khác biệt cho các thành phần trong Java?

Làm thế nào để thiết lập giao diện khác biệt cho các thành phần trong Java?