第12章Swing编程

第12章Swing编程

Swing它采用100%java实现 不在依赖本地平台,所有平台都可以保持相同的运行效果,对跨平台支持比较出色  实现了MVC设计模式也称为Model-Delegate(模式-代理)

12.1 Swing概况

独立于本地平台的Swing(速度慢点)组件被称为轻量级组件,而依赖本地平台的AWT组件被称为重量级组件

 

12.2 Swing 基本组件的用法

12.2.1 Swing 组件层次

大部分Swing组件都是JComponent抽象类的直接或者间接子类,JComponent类继承了java.atw.Containter类,所以Swing组件类可作为容器使用

Swing中包含了4个组件直接继承了AWT组件,而不是从JComponent派生,JFrame JWindows

JDialog JApplet 他们并不是轻量级组件,而是重量级组件(需要委托给GUI组件的平台)

 

Swing组件按功能来分,又可以分为几类

1. 顶层容器 :JFrame JWindows JDialog JApplet

2. 中间容器 :JPanel JScrollPane  JSplitane  JTooLBar

3. 特殊容器 : 在用户界面上具有特殊作用的中间容器 如 JInternalFrame JRootPane

4. 基本组件 : 实现人机交互的组件 JButton JMenu

5. 不可编辑信息的显示组件 :向用户显示不可以编辑的组件信息 JLable

6. 可编辑信息的显示组件 : 向用户显示被编辑的格式化信息的组件 JTable JTextArea

7. 特殊对话框组件 如JColorChooser JFileChooser

 

12.2.2 AWT组件的Swing实现

相对于AWT组件 Swing组件具有如下4个功能

1.可以为Swing组件设置提示信息

2.很多Swing组件如 按钮 标签 菜单等 除了使用文字外,还可以使用图标标示自己

3.支持插拔式的外观风格

4.支持设置边框

 

AWT菜单对象在创建快捷键时,直接传入KeyShortcut对象为其制定快捷键,但Swing菜单项制定快捷键必须通过setAccelerator(KeyStroke ks)方法来设定

SwingUtilities 类的updateComponentTreeUI()方法类跟新制定容器的注意的是跟新的是JFrame对象getContentPanel()方法的返回值,而不是直接跟新JFrame JFrame依然依赖于本地平台的图像组件

JScrollPane对于JTable组件尤其重要,通常需要把JTable放在JScrollPane容器中才可以显示出JTable组件的标题栏

 

12.2.3位组件设置边框

可以调用JComponent提供的setBorderBorder b)方法为Swing组件设置边框,其中BorderSwing的接口

TitledBorder Component 比较独特,其中TitleBorder的作用是为其他边框设计标题,当创建一个TitledBorder对象时,就需要传入一个已经存在的Border对象,因此每创建一个ComponentBorder对象时都需要传入两个Border对象,一个用作组件的内边框,一个用于组件的外边框

Swing组件添加边框的步骤如下

1.使用BorderFactor或者XxxBorder创建XxxBorder实例

2.调用Swing组件的setBorderBorder b)方法为该组件设置边框

 

12.2.4 Swing组件的双缓存和键盘驱动

Swing 组件还有两个功能

1. 所有的Swing组件默认启用双缓存绘图技术(避免频繁重绘GUI组件时显示闪烁现象)默认开启

2. 所有的Swing组件都提供了简单的键盘驱动 JComponent类提供了getInputMap() 返回一个InputMap对象,该对象用于将KeyStroke对象和名字关联;getActionMap()返回一个ActionMap对象 用于将制定名字和Action关联,从而可以允许用户通过键盘来操作代替鼠标驱动GUI上的Swing组件 (相当于提供快捷键)

12.2.5 使用JToolBar创建工具条

Swing提供了JToolBar来创建工具条,创建

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值