JAVA Swing教学PPT
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
Swing组件使用setBorder()方法设置边线类型
范例04
范例名称:Swing组件边线应用举例 范例文件:BorderedButtons.java
复选框和箱式布局
JCheckBox类
定义复选框
ButtonGroup类
定义一个按钮组,将多个JCheckBox组 件放在ButtonGroup中,形成一组单选按 钮
的:了解Swing类使用的基本方式 点:JComponent/JFrame/Icon类
按钮、助记符和提示
JButton类。定义按钮,常用方法如下:
• addActionListener() 注册点击事件监听器 • setText() 设置按钮文字 • setIcon() 设置按钮图标
Mnemonic助记符
Box类
使用BoxLayout布局管理的轻型容器
范例05
范例名称:CheckBox应用举例
范例文件:CheckBoxPanel.java
选项卡和滑杆
JTabbedPane类
定义选项卡组件,重要方法:
• addTab() 添加选卡的方法
JSlider类
定义滑杆组件,重要方法:
• • • • • setXXXTickSpacing()设置刻度(主、次) setPaintXXX() 设置绘制标签、文字 addChangeListener() 刻度变化事件处理 getValue()获取当前滑块位置值 setValue()设定滑块位置(值)
Swing 结构
Swing类
不推荐混合使用 Swing和AWT的 可视组件 javax.swing包 两类组件:
• 顶层容器 (JFrame, JApplet, JWindow, JDialog) • 轻量级组件(如 JButton, JPanel 和JMenu)
顶层Swing容器
组件、框架和标签
JComponent类
所有Swing轻量组件的基类,它定义了Swing组 件的大部分基本功能。 JComponent类继承了java.awt.Container类,因 此所有的Swing组件都是AWT容器。
JFrame类
JFrame定义一个GUI程序的框架,是图形程序不 可缺少的一部分
要求:
• 写出一个有List和ComboBox的Frame。
目的:
• 掌握JList和JComboBox基本用法
表格(JTable)
JTable类 定义表格组件 TableModel接口 定义表格的模型 data[][] 代表表格的数据 columnNames[]代表表格的表头
范例10
范例名称:JTable应用举例 范例文件:
• getValue() 获取当前进度值
范例07
范例名称:JprogressBar应用举例 范例文件:ProgressExample.java
经典的 “MVC” 结构
MVC体系结构:
• 针对需要为同样的数据提供多个 不同视图的应用程序而设计
MVC的三种对象模型
• 模型(Model):表示数据 • 视图(View):绘制模型的视觉表现 • 控制器(Controller):接受用户通过 视图的输入,并改变模型
JPopupMenu
JPopupMenu类 定义弹出式菜单,重要方法:
• add(JMenuItem e) 往菜单中增加新的菜单项 • show() 显示菜单
JMenuItem类 定义菜单项,重要方法:
• addActionListener() 为菜单项增加事件处理
范例03
范例名称:JPopupMenu应用举例 范例文件:PopupExample.java
• TableExample.java • 根据数据构建表格
目
的:掌握JTable基本用法
树(JTree)
JTree -- 树组件,主要构造方法:
• public JTree() • public JTree(TreeModel newModel)
TreeNode接口 -- 树的节点组件
• DefaultMutableTreeNode类 • add() 添加节点
JFrame, JDialog, JApplet
RootPaneContainer ContentPane (JPanel类型容器)
f.getContentPane().add(…) f.getContentPane().setLayout(…)
Swing‘J’
组 件 类 层 次
设计重心
• 数据?界面?
Swing为每一个组件定义了一个分离的 模型接口(separatable model interface),用于数据抽象
菜单和工具条
JMenuBar类定义菜单条组件,重要方法:
• add(JMenu )
JMenu----菜单组件:
• add(JMenuItem)
Icon接口
Swing组件支持图像显示 ImageIcon类实现了Icon接口,用于描述图 像
• 创建ImageIcon对象
new ImageIcon(Image i) new ImageIcon(String filename) new ImageIcon(URL u)
• Icon接口定义的方法
Chp4 Swing
本课内容
JFC结构
AWT与 Swing的关系 Swing结构及类层次 图形支持与Icon接口 Swing组件的使用
MVC体系结构
JFC概述
从对等组件到轻量级组件 AWT==>Swing
Swing和AWT的关系(利用而非替代)
相同点 • Swing继承了AWT的Container容器和Component组 件 • Swing采用了AWT中1.1的事件模型 • 依然保留非视的组件 不同点 • 将AWT中的对等组件全部用轻量组件替换
TreeModel接口 -- 树的数据模型
• setRoot() 设置树的根节点
范例11
范例名称:JTree应用举例
范例文件:
• TreeExample.java • TreeEnumeration.java
要
目
求:用TreeModel创建Swing JTree
的:掌握JTree的基本编程
练习
改造先前的“桌面考试系统”GUI,使 用SWING组件实现同样效果。
要点:
• • • • 可以把多个视图和控制器插入到单个模型中 当模型改变时,模型的视图能够自动地得到通知 在一个视图中改变模型的属性,将导致模型其他视图也随之更新 由于模型独立于视图,所以不需要修改模型来适应新类型的视图 或控制器
视图的更新
更新 模型 更新
视图1
获得数据
获得数据
视图2
改变
改变
控制器
通过组件的setMnemonic()方法可以设置组件助记 符
ToolTip提示
通过组件的setToolTipText()可设置组件的提示信 息
范例02
范例名称:Swing按钮/助记符/提示应用举例
范例文件:ButtonExample.java
TipButtons.java
要 目
求:使用JButton,并加上助记符和提示。 的:掌握JButton/Mnemonic/ToolTip的使用。
JLabel类
定义标签,是常用组件
JFrame
与java.awt.Frame类似 是RootPaneContainer的一种 setDefaultCloseOperation(int operation)
• DO_NOTHING_ON_CLOSE • HIDE_ON_CLOSE • DISPOSE_ON_CLOSE •
范例06
范例名称:JTabbedPane,JSlider应用举例 范例文件:TabExample.java
SliderExample.java
进度条(JProgressBar)
JProgressBar类
定义了进度条组件,重要方法:
• setMinimum(int n)设置最小进度值 • setMaximum(int n) 设置最大进度值 • setValue(int n) 设置当前进度值
JMenuItem----菜单项组件:
• addActionListener()
JRatioButtonMenuItem---- 单 选 菜 单 项 组 件 :
• setSelected(boolean ) • addItemListener()
JToolBar类:工具条
范例08
范例名称:Swing 菜单应用举例 范例文件:MenuBarExample.java 要求:编写一个菜单系统,能用来改变外观感觉 目的:掌握菜单的编程方法
改变
事件
事件由控制器处理,控制器 根据事件的类型来改变模型 或一个或多个视图 模型维护一个视图列表,这 些视图为获得模型变化通知 已经向模型登记过了。当模 型发生变化时该模型通知已 向该模型登记的每个视图。 视 图通常 从该模型中获得 信息,接着更新自己
典型的MVC通信图
Swing的可分离MVC结构
要
目
求:在一个JPanel中加上弹出菜单。
的:掌握弹出菜单的使用。
Border 接口及边线类型
javax.swing.border.* 包中定义了各种边线类, 各种类均实现了Border接口,该接口中定义了 边的公共方法。
• • • • • LineBorder 线条边 BevelBorder 简单的双线边 EtchedBorder 蚀刻边 EmptyBorder 空的透明的边,占据边的位置 CompoundBorder 组合边
paintIcon(Graphics) getIconWidth getIconHeight
范例01
范例名称:Swing组件应用初步
范例文件:HelloWorldJFC.java
HelloWorldJFC2.java HelloWorldJFC3.java
要
目 要
求:编写一个基于Swing组件的程序
要点:1. 给菜单项分组的方法 2. 对菜单事件的处理方法
列表框和组合框
JList -- 列表框
• 注意:JList列表框如要上下滚动需添加到 JScrollPane中
JComboBox -- 组合框
范例09
范例名称:列表框和组合框应用举例 范例文件:
• ListCombwk.baidu.comExample.java