- package com.hongyuan.gui;
- import java.awt.EventQueue;
- import java.awt.event.ActionEvent;
- import java.awt.event.ActionListener;
- import javax.swing.JButton;
- import javax.swing.JFrame;
- import javax.swing.JPanel;
- import javax.swing.SwingUtilities;
- import javax.swing.UIManager;
- import javax.swing.UnsupportedLookAndFeelException;
- public class PlafTest {
- public static void main(String[] args) {
- EventQueue.invokeLater(new Runnable() {
- @Override
- public void run() {
- PlafFrame frame=new PlafFrame();
- frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
- frame.setVisible(true);
- }
- });
- }
- }
- class PlafFrame extends JFrame
- {
- private JPanel buttonPanel;
- public PlafFrame(){
- this.setTitle("PlafTest");
- this.setSize(400, 300);
- buttonPanel=new JPanel();
- //查询观感并生成按钮
- UIManager.LookAndFeelInfo[] infos=UIManager.getInstalledLookAndFeels();
- for(UIManager.LookAndFeelInfo info:infos){
- makeButton(info.getName(),info.getClassName());
- }
- this.add(buttonPanel);
- }
- void makeButton(String name,final String plafName){
- JButton button=new JButton(name);
- buttonPanel.add(button);
- button.addActionListener(new ActionListener() {
- @Override
- public void actionPerformed(ActionEvent e) {
- try {
- //设置观感并更新组件
- UIManager.setLookAndFeel(plafName);
- SwingUtilities.updateComponentTreeUI(PlafFrame.this);
- } catch (ClassNotFoundException | InstantiationException
- | IllegalAccessException
- | UnsupportedLookAndFeelException e1) {
- e1.printStackTrace();
- }
- }
- });
- }
- }
- //该片段来自于http://www.codesnippet.cn/detail/1504201512266.html
来源: http://www.codesnippet.cn/detail/1504201512266.html