外观不能改变
为什么在Metal Motif Windows之间选择,外观完全一样,毫无变化照书本例子,书本里也给出三种外观为什么我试的不行呢import java.awt.*;import javax.swing.*;import java.awt.event.*;public class LookandFeel extends JFrame{ JRadioButton b1=new JRadioButton("Metal"), b2=new JRadioButton("Motif"), b3=new JRadioButton("Windows"); public LookandFeel() { super("Swing application"); Container contentPane=getContentPane(); contentPane.add(new Panel(),BorderLayout.CENTER); } public static void main(String args[]) { final JFrame f=new LookandFeel(); f.setBounds(100,100, 300, 300); f.setVisible(true); f.setDefaultCloseOperation(DISPOSE_ON_CLOSE); f.addWindowListener(new WindowAdapter(){ public void windowClosing(WindowEvent e){ System.exit(0); } }); } class Panel extends JPanel implements ActionListener { public Panel() { add(new JButton("JButton")); add(new JTextField("JTextField")); add(new JCheckBox("JCheckBox")); add(new JRadioButton("JRadioButton")); add(new JLabel("JLabel")); add(new JList(new String[]{ "JList Item 1","JList Item 2","JList Item 3"})); add(new JScrollBar(SwingConstants.HORIZONTAL)); ButtonGroup group=new ButtonGroup(); group.add(b1); group.add(b2); group.add(b3); b1.addActionListener(this); b2.addActionListener(this); b3.addActionListener(this); add(b1); add(b2); add(b3); } public void actionPerformed(ActionEvent e) { JRadioButton src=(JRadioButton)e.getSource(); try { if((JRadioButton)e.getSource()==b1) UIManager.setLookAndFeel("javax.swing.plaf.metal.MetalLookandFeel"); else if((JRadioButton)e.getSource()==b2) UIManager.setLookAndFeel("com.sun.java.swing.plaf.motif.MotifLookandFeel"); else if((JRadioButton)e.getSource()==b3) UIManager.setLookAndFeel("com.sun.java.swing.plaf.windows.WindowsLookandFeel"); } catch (Exception ex) { } SwingUtilities.updateComponentTreeUI(getContentPane()); } } }