⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 changelook.java

📁 The Definitive Guide to Java Swing, Third Edition by John Zukowski (Author) 源码
💻 JAVA
字号:
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import javax.swing.plaf.*;

public class ChangeLook {

  public static void main (String args[]) {
    Runnable runner = new Runnable() {
      public void run() {

        final JFrame frame = new JFrame("Change Look");
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

        ActionListener actionListener = new ActionListener() {
          public void actionPerformed(ActionEvent actionEvent) {
            Object source = actionEvent.getSource();
            String lafClassName = null;
            if (source instanceof JComboBox) {
              JComboBox comboBox = (JComboBox)source;
              lafClassName = (String)comboBox.getSelectedItem();
            } else if (source instanceof JButton) {
              lafClassName = actionEvent.getActionCommand();
            }
            if (lafClassName != null) {
              final String finalLafClassName = lafClassName;
              Runnable runnable = new Runnable() {
                public void run() {
                  try {
                    UIManager.setLookAndFeel(finalLafClassName);
                    SwingUtilities.updateComponentTreeUI(frame);
                  } catch (Exception exception) {
                    JOptionPane.showMessageDialog (
                      frame, "Can't change look and feel",
                      "Invalid PLAF", JOptionPane.ERROR_MESSAGE);
                  }
                }
              };
              EventQueue.invokeLater(runnable);
            }
          }
        };

        //Object newSettings[] = {"Button.background", Color.PINK,
                                //"Button.foreground", Color.MAGENTA};
        //UIDefaults defaults = UIManager.getDefaults();
        //defaults.putDefaults(newSettings);

        UIManager.LookAndFeelInfo looks[] =
          UIManager.getInstalledLookAndFeels();

        DefaultComboBoxModel model = new DefaultComboBoxModel();
        JComboBox comboBox = new JComboBox(model);

        JPanel panel = new JPanel();

        for (int i=0, n=looks.length; i<n; i++) {
          JButton button = new JButton(looks[i].getName());
          model.addElement(looks[i].getClassName());
          button.setActionCommand(looks[i].getClassName());
          button.addActionListener(actionListener);
          panel.add(button);
        }

        comboBox.addActionListener(actionListener);

        frame.add(comboBox, BorderLayout.NORTH);
        frame.add(panel, BorderLayout.SOUTH);
        frame.setSize(350, 150);
        frame.setVisible(true);
      }
    };
    EventQueue.invokeLater(runner);
  }
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -