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

来源:计算机等级考试    发布时间:2012-08-29    计算机等级考试视频    评论

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());

   }

上一页12下一页

视频学习

我考网版权与免责声明

① 凡本网注明稿件来源为"原创"的所有文字、图片和音视频稿件,版权均属本网所有。任何媒体、网站或个人转载、链接转贴或以其他方式复制发表时必须注明"稿件来源:我考网",违者本网将依法追究责任;

② 本网部分稿件来源于网络,任何单位或个人认为我考网发布的内容可能涉嫌侵犯其合法权益,应该及时向我考网书面反馈,并提供身份证明、权属证明及详细侵权情况证明,我考网在收到上述法律文件后,将会尽快移除被控侵权内容。

最近更新

社区交流

考试问答