java swing 控件_Java Swing组件

一、        java swing 组件技术简介

1.swing的特性

l  是AWT的扩展,swing比AWT提供了更多的组件和外观

l  它是纯java代码编写(除了JFrame、JDialog、JApplet),因此与平台无关

2.AWT的缺点

组件少而且是本地代码实现(无法实现跨平台)

3.swing 和 AWT相比

一个重要的的改进在于swing把一个组件的处理分为图形部分和数据处理部分(MVC模型)

l  图形部分由编程环境统一处理(View)

l  数据部分由一个数据处理模型进行处理(Model)

4.swing编程应注意的问题

l  swing和AWT组件不要混合使用,可能会导致不能正常显示的错误

l  正确理解轻量级组件与重量级组件的不同

轻量级组件——swing组件,由纯java代码实现,占用系统资源少

重量级组件——AWT组件,有本地c代码实现,占用系统资源多

(注:JFrame、JDialog、JApplet(顶层容器)是重量级组件)

二、        swing的“外观和感觉”(LookAndFeel)

1.swing中常见的“LookAndFeel”

l  Metal风格(默认)

javax.swing.plaf.metal.MetalLookAndFeel

l  Windows风格

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

l  Windows Classic风格

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

l  Motif风格

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

l  Mac风格(需要在相关的操作系统上方可实现)

com.sun.java.swing.plaf.mac.MacLookAndFeel

l  GTK风格(需要在相关的操作系统上方可实现)

com.sun.java.swing.plaf.gtk.GTKLookAndFeel

l  可跨平台的默认风格

UIManager.getCrossPlatformLookAndFeelClassName()

l  当前系统的风格

UIManager.getSystemLookAndFeelClassName()

意义:通过LookAndFeel机制,我们可以是程序的设计者任意转换程序的人机界面来对应不同的操作系统

2.设置swing的LookAndFeel

在swing中,采用UIManager类来管理swing界面的LookAndFeel,UIManager类提供静态方法setLookAndFeel()来设置界面的LookAndFeel,该方法是一个重载方法,提供两个重载方式:

setLookAndFeel(LookAndFeel newLookAndFeel)

setLookAndFeel( String className)

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

2-1.设置方法(静态设置,动态设置)

静态设置——设计时指定LookAndFeel

eg1:

String lookAndFeel = "javax.swing.plaf.metal.MetalLookAndFeel";

UIManager.setLookAndFeel(lookAndFeel);

eg2:

String lookAndFeel = UIManager.getCrossPlatformLookAndFeelClassName();

UIManager.setLookAndFeel(lookAndFeel);

动态设置——运行时指定LookAndFeel

eg:

UIManager.setLookAndFeel(UIManager.getCrossPlatformLookAndFeelClassName());

//运行时动态更新外观

SwingUtilities.updateComponentTreeUI(this)

附:SwingUtilities.updateComponentTreeUI(Component c)

对组件c重新设置外观

注:由于JFrame、JDialog、JApplet(顶层容器)为重量级组件,因此他们的外观只与操作系统平台有关系,在相同的操作系统平台下表现相同的外观

2-2.程序代码

1

2 import java.awt.*;3

4 import java.awt.event.*;5

6

7

8 import javax.swing.*;9

10

11

12 public class LookAndFeelDemo extendsJFrame {13

14

15

16 private JRadioButton radio = new JRadioButton("Metal");17

18 private JRadioButton radio = new JRadioButton("Windows");19

20 private JRadioButton radio = new JRadioButton("Motif");21

22 private JPanel panelNorth = newJPanel();23

24 private JPanel panelSouth = newJPanel();25

26 private JTextArea area = newJTextArea( , );27

28 private JButton btn = new JBu

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值