a我考网

 找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 130|回复: 1

[JAVA] 2012年计算机二级Java基础教程之设置Swing界面(1)

[复制链接]
发表于 2012-7-31 22:04:26 | 显示全部楼层 |阅读模式
8.7 设置Swing界面的外观(look)和感觉(feel)   我们知道,AWT组件不能跨平台,它的外观显示取决于程序运行时所在的操作系统,如果程序在Windows操作系统中运行,就会显示Windows操作系统组件的外观;如果程序在Linux操作系统中运行,就会显示Linux操作系统组件的外观。但其后的Swing包中提供的组件则 支持跨平台,可以保证使用Swing组件开发的GUI程序在不同的操作系统中呈现一致的界面效果。
1 F( y8 G' ?- S, W! v  在Swing中,采用UIManager类来管理Swing界面的外观,UIManager类提供的方法均为静态方法,因此,无需生成UIManager的类对象来调用,一般使用静态方法setLookAndFeel来设置界面的外观及感觉,该方法是一个重载方法,提供两个重载形式。
1 }( K& N' t  v  setLookAndFeel(LookAndFeel newLookAndFeel)
& }5 O) q5 N/ g  setLookAndFeel(String className)8 m3 O1 }; `, V7 S: O
  其中参数newLookAndFeel表示组件的某种外观,className表示组件某种外观的名字。. k; e# B; W) n3 u* F
  可以通过如下三种方式设置Swing组件的外观和观感。4 G2 p# Y. h6 G: f+ v; Z" X
  (1)采用程序所在当前系统的组件外观
& W5 k2 G) v. x  UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());
6 F! f$ o3 f* m/ a% o( V! D  这样,实际上与AWT组件呈现的效果一样,在不同的操作系统上显示不同的外观。
/ y' f5 K7 [1 m  (2)在所有操作系统中保持同样的跨平台的Metal外观,这也是UIManager采用的默认的外观。本节前的所有Swing应用程序采用的都是这种外观。) i1 S) C( A; o; b5 n/ a3 X  |
  (3)指定某种特定外观# U9 b3 [8 T/ [% |1 g7 d
  JDK1.6版本中默认支持如下五种外观:5 ?7 J. y+ R; j/ c0 `0 k; q* n
  javax.swing.plaf.metal.MetalLookAndFeel6 J7 I. m, u. V, B/ G' ^2 @
  com.sun.java.swing.plaf.nimbus.NimbusLookAndFeel
# o  U  i' f: L% m9 C& @  com.sun.java.swing.plaf.motif.MotifLookAndFeel3 a: R. v% i% w& x) d8 p- P7 F$ C
  com.sun.java.swing.plaf.windows.WindowsLookAndFeel9 N  C9 E+ P! I
  com.sun.java.swing.plaf.windows.WindowsClassicLookAndFeel
: V6 z4 h! L# K+ k  读者可以通过UIManager.setLookAndFeel("XXX")的方式设置:
0 Q( T  U0 x; o- Z. p  下面的例子演示了在同一个GUI程序中采用不同外观设置时其显示效果。
6 K. n  Q( A9 \# d4 p; z  [例8-13]
+ \" A0 p- V- P* Y8 L8 I3 E  import java.awt.*;
& i+ P8 b4 g; l7 t' O" }- h/ G  import java.awt.event.*;
) }; P8 u$ j$ y% ?7 t. Z' A1 J) O  import javax.swing.*;: r: x& r  }& t: z  H
  class LookAndFeelTest extends JFrame{/ y; o; m" W5 `8 S8 e' l
  private JRadioButton rdo1 = new JRadioButton("Metal");
4 j1 |" y! ^+ h& d9 r  private JRadioButton rdo2 = new JRadioButton("Windows");* j; n3 T: ~/ i; q% F  p- k
  private JRadioButton rdo3 = new JRadioButton("Nimbus");3 R% u9 g8 f* c2 u
  private JRadioButton rdo4 = new JRadioButton("Motif");
  N- }/ d" W7 X8 D5 s  private JPanel panelNorth = new JPanel();4 g8 n9 ^, ~* q: A$ }4 i/ l* f2 K" n
  private JPanel panelSouth= new JPanel();7 A# a: ]! ~+ V7 J
  private JTextArea area = new JTextArea(6,20);
( ^1 A. d& i9 J; {; W  Z2 D6 Q  
回复

使用道具 举报

 楼主| 发表于 2012-7-31 22:04:27 | 显示全部楼层

2012年计算机二级Java基础教程之设置Swing界面(1)

private JButton btn = new JButton("JButton按钮");</p>  private JCheckBox chk = new JCheckBox("复选框");  M( ~. g& j9 E) O
  private JComboBox cmbCity= new JComboBox(new String[]{"北京","上海","广州","深圳"});$ O) o$ F: n/ l9 U, e" M
  public LookAndFeelTest(String title){
' N) }9 w$ `& z" n& R; d/ k  super(title);) ^+ P/ L1 z2 F
  Container contentPane = this.getContentPane();
( O, Z$ E( v. j; {0 V7 z! Q5 U  ButtonGroup group = new ButtonGroup();; v3 f8 g/ n$ n* G7 H
  group.add(rdo1);1 B( y' k8 M7 R- a' w
  group.add(rdo2);' }' {, Y& I8 r
  group.add(rdo3);
! K  O( B" f% y) H8 h7 W) e  group.add(rdo4);9 k0 h- G* j6 _, ~2 ^) U
  panelNorth.add(rdo1);  E# r% ~5 u8 x; |8 x
  panelNorth.add(rdo2);9 {) W# F4 l7 N/ V' q- @
  panelNorth.add(rdo3);
4 P3 r7 D6 q9 D# |  panelNorth.add(rdo4);' q) s+ C. p- V5 I8 f/ U  H. ?9 q
  panelSouth.add(btn);5 v5 y+ ^( Z5 z! b# }
  panelSouth.add(chk);
7 `+ W5 R7 ]/ V' z- O. ]2 f  panelSouth.add(cmbCity);
8 I+ s7 M  L! t% y% Y  contentPane.add(panelNorth,BorderLayout.NORTH );
5 b1 f5 B" O, t2 W: _7 N5 o  contentPane.add(area,BorderLayout.CENTER );1 o; K& x. B9 D% R; y$ A. [8 M3 J) l
  contentPane.add(panelSouth,BorderLayout.SOUTH );
8 @$ \; K9 V  W" L1 _; q# d  pack();+ T! j& V7 L, E3 Y: e: h
  setVisible(true);4 C( @9 P4 x3 Y( ^& h( w
  this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);# e# k2 [5 D0 `5 Y2 X
  //监听Item事件
- r/ y( ~0 x; w, q1 M" [6 `  rdo1.addItemListener(new MyItemListener());% t& d5 Q* }9 M) w! l* n
  rdo2.addItemListener(new MyItemListener());
( U9 C8 c, B& s3 h( O  rdo3.addItemListener(new MyItemListener());- o6 m* D/ U- X3 m7 K  T; S
  rdo4.addItemListener(new MyItemListener());  R) J$ D  i* w) v* ?) m! d
  }
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|Woexam.Com ( 湘ICP备18023104号 )

GMT+8, 2024-5-3 04:43 , Processed in 0.206471 second(s), 23 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表