职业教育新东方网 > 职业教育 > 计算机 > 等级考试 > 计算机二级 > JAVA > 文章正文

2012年计算机二级Java设置Swing界面的外观和感觉学习教程

分享到:

2011-12-30 10:56  作者:  来源:互联网  字号:T|T

8.7 设置Swing界面的外观(look)和感觉(feel)

  我们知道,AWT组件不能跨平台,它的外观显示取决于程序运行时所在的操作系统,如果程序在Windows操作系统中运行,就会显示Windows操作系统组件的外观;如果程序在Linux操作系统中运行,就会显示Linux操作系统组件的外观。但其后的Swing包中提供的组件则 支持跨平台,可以保证使用Swing组件开发的GUI程序在不同的操作系统中呈现一致的界面效果。

  在Swing中,采用UIManager类来管理Swing界面的外观,UIManager类提供的方法均为静态方法,因此,无需生成UIManager的类对象来调用,一般使用静态方法setLookAndFeel来设置界面的外观及感觉,该方法是一个重载方法,提供两个重载形式。

  setLookAndFeel(LookAndFeel newLookAndFeel)

  setLookAndFeel(String className)

  其中参数newLookAndFeel表示组件的某种外观,className表示组件某种外观的名字。

  可以通过如下三种方式设置Swing组件的外观和观感。

  (1)采用程序所在当前系统的组件外观

  UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());

  这样,实际上与AWT组件呈现的效果一样,在不同的操作系统上显示不同的外观。

  (2)在所有操作系统中保持同样的跨平台的Metal外观,这也是UIManager采用的默认的外观。本节前的所有Swing应用程序采用的都是这种外观。

  (3)指定某种特定外观

  JDK1.6版本中默认支持如下五种外观:

  javax.swing.plaf.metal.MetalLookAndFeel

  com.sun.java.swing.plaf.nimbus.NimbusLookAndFeel

  com.sun.java.swing.plaf.motif.MotifLookAndFeel

  com.sun.java.swing.plaf.windows.WindowsLookAndFeel

  com.sun.java.swing.plaf.windows.WindowsClassicLookAndFeel

  读者可以通过UIManager.setLookAndFeel("XXX")的方式设置:

  下面的例子演示了在同一个GUI程序中采用不同外观设置时其显示效果。

  [例8-13]

  import java.awt.*;

  import java.awt.event.*;

  import javax.swing.*;

  class LookAndFeelTest extends JFrame{

  private JRadioButton rdo1 = new JRadioButton("Metal");

  private JRadioButton rdo2 = new JRadioButton("Windows");

  private JRadioButton rdo3 = new JRadioButton("Nimbus");

  private JRadioButton rdo4 = new JRadioButton("Motif");

  private JPanel panelNorth = new JPanel();

  private JPanel panelSouth= new JPanel();

  private JTextArea area = new JTextArea(6,20);

  private JButton btn = new JButton("JButton按钮");

  private JCheckBox chk = new JCheckBox("复选框");

  private JComboBox cmbCity= new JComboBox(new String[]{"北京","上海","广州","深圳"});

  public LookAndFeelTest(String title){

  super(title);

  Container contentPane = this.getContentPane();

  ButtonGroup group = new ButtonGroup();

  group.add(rdo1);

  group.add(rdo2);

  group.add(rdo3);

  group.add(rdo4);

  panelNorth.add(rdo1);

  panelNorth.add(rdo2);

  panelNorth.add(rdo3);

  panelNorth.add(rdo4);

  panelSouth.add(btn);

  panelSouth.add(chk);

  panelSouth.add(cmbCity);

  contentPane.add(panelNorth,BorderLayout.NORTH );

  contentPane.add(area,BorderLayout.CENTER );

  contentPane.add(panelSouth,BorderLayout.SOUTH );

  pack();

  setVisible(true);

  this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

  //监听Item事件

  rdo1.addItemListener(new MyItemListener());

  rdo2.addItemListener(new MyItemListener());

  rdo3.addItemListener(new MyItemListener());

  rdo4.addItemListener(new MyItemListener());

  }

外观 Java 界面 JFrame className 相关文章导读

热点课讯

精彩问答

提问