设为首页 加入收藏

TOP

2012年计算机二级Java设置Swing界面的外观和感觉学习教程
2014-11-03 13:00:08 来源: 作者: 【 】 浏览:45
Tags:2012年 计算机 二级 Java 设置 Swing 面的 外观 感觉 学习教程

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


   }


  相关推荐:


】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇2012年计算机二级java计算器综合.. 下一篇2012年计算机二级Java输入输出操..

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容: