swing组件结构图.ppt
合集下载
javaSWING讲解PPT课件
• 东(EAST) • 西(WEST) • 南(SOUTH) • 北(NORTH) • 中(CENTER)五个区域,组件只能被添加到指定的区域 • 如不指定组件的加入部位,则默认加入到CENTER区。 • 每个区域只能加入一个组件,如加入多个,则先前加入的会被覆盖。
第19页/共40页
BorderLayout布局管理器 • BorderLayout型布局容器尺寸缩放原则:
说明
将项添加至项的列表
返回指定索引位置的列表项
返回列表(作为对象)中的项数 将当前选择的项作为一个对象返回
返回当前选择项的索引位置
第15页/共40页
布局管理器
• 用户界面上的GUI组件可以按照一定的格式布局 例如水平排列,或按网格方式排列
• 布局管理器类是一组类,它 • 实现 java.AW youtManage r 接口 • 帮助在容器中放置组件
位置属性,如果试图使用Java语言提供的setLocation(),setSize(),setBounds()等方法,则都会被 布局管理器覆盖。 • 如果用户确实需要亲自设置组件大小或位置,则应取消该容器的布局管理器,方法为:
• setLayout(null)
第22页/共40页
课堂练习
第23页/共40页
SWING容器组件1
Swing 应用程序
主窗口
内容面板
第3页/共40页
顶层容器(每个应用 程序中至少有一个)
主要显示区域包含 GUI 中的可视组件
创建顶层容器
创建容器
设置容器大小 (对框架及面板而言)
设置容器可见度 (对框架及面板而言)
SWING容器组件2
javax.swing 包
常见容器
JFrame
第19页/共40页
BorderLayout布局管理器 • BorderLayout型布局容器尺寸缩放原则:
说明
将项添加至项的列表
返回指定索引位置的列表项
返回列表(作为对象)中的项数 将当前选择的项作为一个对象返回
返回当前选择项的索引位置
第15页/共40页
布局管理器
• 用户界面上的GUI组件可以按照一定的格式布局 例如水平排列,或按网格方式排列
• 布局管理器类是一组类,它 • 实现 java.AW youtManage r 接口 • 帮助在容器中放置组件
位置属性,如果试图使用Java语言提供的setLocation(),setSize(),setBounds()等方法,则都会被 布局管理器覆盖。 • 如果用户确实需要亲自设置组件大小或位置,则应取消该容器的布局管理器,方法为:
• setLayout(null)
第22页/共40页
课堂练习
第23页/共40页
SWING容器组件1
Swing 应用程序
主窗口
内容面板
第3页/共40页
顶层容器(每个应用 程序中至少有一个)
主要显示区域包含 GUI 中的可视组件
创建顶层容器
创建容器
设置容器大小 (对框架及面板而言)
设置容器可见度 (对框架及面板而言)
SWING容器组件2
javax.swing 包
常见容器
JFrame
Swing套件的容器元件与版面配置
整理ppt
3
10-1-1 Swing套件是什麼
Swing套件的類別是定義 在名為javax.swing套件, 第9章介紹的AWT元件屬於 JDK 1.0和1.1版的GUI元 件,在Java 2平台提供全 新的Swing元件來取代 AWT,大部分的Swing元
件都是繼承自
JComponent,其元件名 稱都是以”J”字母開頭,如 右圖所示:
JFrame類別關於ContentPane物件的相 關方法,如下表所示:
方法 void setContentPane(Container)
Container getContentPane() void setJMenuBar(JMenuBar)
JMenuBar getMneuBar()
說明 設定 JFrame 使用的 ContentPane 物件 取得 JFrame 使用的 ContentPane 物件 設定視窗的功能表列(詳見第 11 章)
整理ppt
21Biblioteka -1 Swing套件的基礎Swing套件屬於Java平台「JFC」(Java Foundation Classes)的一部分,JFC可 以建立GUI介面的Java應用程式,在本書 稱為Swing應用程式,使用的是JFC的 Swing套件提供的各種元件。
• 例如:按鈕、核取方塊、選項鈕和文字方塊等。
整理ppt
5
10-1-3 事件改編者Event Adapter-說 明
在AWT的java.awt.event套件提供 XXXAdapter改編者類別,如下表所示:
XXXAdapter 類別 ComponentAdapter ContainerAdapter
FocusAdapter KeyAdapter MouseAdapter MouseMotionAdapter WindowAdapter
图形用户界面设计Swing常用组件.ppt
JScrollPane scrollPane = new JScrollPane(textArea);
2020年1月25日星期六
NCEPU
Swing的常用组件--JTextArea
文本区的三 种显示方式
2020年1月25日星期六
NCEPU
Swing的常用组件--JTextArea
例:创建包含文本区、文本框和“提交”按钮的窗口。 在文本区中输入文字,单击“提交”按钮,文本 框中会出现同样的文字。
}
class TFFrame extends JFrame { JTextField num1, num2, num3; public void launchFrame() { num1 = new JTextField(10); num2 = new JTextField(10); num3 = new JTextField(15); JLabel lblPlus = new JLabel("+"); JButton btnEqual = new JButton("="); btnEqual.addActionListener(new MyMonitor()); setLayout(new FlowLayout()); add(num1); add(lblPlus); add(num2); add(btnEqual); add(num3); pack(); setVisible(true); }
public class TFPassword { public static void main(String[] args) { new TFFrame2(); }
}
class TF密Fram码e2域exJtePnadsssJFwraomredField
Swing组件
常用容器之一 有效利用他使版面管理更为容易; 支持double buffering,处理动画片更为流畅(无闪烁) 构造函数:
• JPanel(LayoutManager layout,boolean isDoubleBuffered)
范例 path:exam\ch5
• JPanel1.java //利用JPanel排列5个JLabel对象
5)不可编辑信息的显示 Jlabel, JProgressBar, JToolTip
6)可编辑的格式化信息的显示 JColorChooser, JFileChooser, JTable, JTextField, JTextArea, JTree
总结
JFrame、JApplet、Jdialog是swing的底层 容器,是重量级容器;
❖ComponentEvent //组件移动、缩放、显示、隐藏
❖FocusEvent
//获得或失去焦点
❖KeyEvent
//在组件聚焦时,接收键盘输入
❖MouseEvent
//鼠标点击和进、出测试区
❖MouseMotionEvent //鼠标移动
4、能激活Container类的ContainerEvent事件的Swing组件
• 当树的结构有任何改变时,例如节点值变了、新增或删除了节 点等。
• 必须实现TreeModelListener接口
void treeNodesChanged(TreeModelEvent e)
void treeNodesInserted(TreeModelEvent e)
void treeNodesRemoveed(TreeModelEvent e)
Swing组件层次
增加Swing组件后类层次图
• JPanel(LayoutManager layout,boolean isDoubleBuffered)
范例 path:exam\ch5
• JPanel1.java //利用JPanel排列5个JLabel对象
5)不可编辑信息的显示 Jlabel, JProgressBar, JToolTip
6)可编辑的格式化信息的显示 JColorChooser, JFileChooser, JTable, JTextField, JTextArea, JTree
总结
JFrame、JApplet、Jdialog是swing的底层 容器,是重量级容器;
❖ComponentEvent //组件移动、缩放、显示、隐藏
❖FocusEvent
//获得或失去焦点
❖KeyEvent
//在组件聚焦时,接收键盘输入
❖MouseEvent
//鼠标点击和进、出测试区
❖MouseMotionEvent //鼠标移动
4、能激活Container类的ContainerEvent事件的Swing组件
• 当树的结构有任何改变时,例如节点值变了、新增或删除了节 点等。
• 必须实现TreeModelListener接口
void treeNodesChanged(TreeModelEvent e)
void treeNodesInserted(TreeModelEvent e)
void treeNodesRemoveed(TreeModelEvent e)
Swing组件层次
增加Swing组件后类层次图
JavaSwing图形界面开发(常用组件)33页PPT
17
4.2.2 如何使用单选按钮 即RadioButton,通过“JRadioButton类” 实现。 如:诸多管理软件中出现的“性别”单选按钮 。
图4.5 单选按钮示例图
要使用单选按钮,同样首先必须创建,然后再使用其 内置的方法来操纵组件。
18
表4.5 单选按钮的构造器
常用方法:与普通按钮类似。
29
按钮组件综合应用程序运行结果:
图4.10 按钮组件综合应用
30
4.3 本章小结
1、在顶层窗口中添加标签 将标签控件添加到顶层窗口的内容面板上即可。 标签上的文字,可使用“构造器”和“setText()”两种方法来创建。
2、普通按钮控件的添加 将按钮控件添加到顶层窗口的内容面板上即可。 按钮上的文字,可使用构造器创建。
标签
如何使用标签和按钮组件
“标签”和“按钮”是开发图形界面必须用到的基本组件, 几乎所有的程序界面都会用到。 ◆ 标签
---用于标识名称、说明性文字。 ---通常,标签所显示的文本是不变的,也是禁止编辑的。
不过,可通过代码方式,让标签的文字发生改变。
◆ 按钮
---实现人机对话最基本的组件。 ---如ATM,当输入密码后,即会有几个按钮控件供用户选择。
6
使用标签示例程序1---在顶层容器中添加两个标签组件
(使用标签对象初始化方法,为Label赋初始值)
7
程序运行结果:
图4.1 使用对象初始化的方式赋值
8
使用标签示例程序2---在顶层容器中添加两个标签组件
(内置setText()方法赋值)
9
程序运行结果:
图4.2 使用标签内置方法赋值
10
4.2 如何使用按钮
swing常用元件(二)讲解
11.2 對話框
對話框是一種顯示訊息或詢問問題的小視窗,在JOptionPane 類別中共四種對話框,分別是showConfirmDialog() 確認對話框、 showMessageDialog() 訊息對話框、showInputDialog() 輸入對話 框、showOptionDialog() 選項對話框。比較複雜的對話框又稱為面 版,本節介紹二種,分別是JFileChooser() 檔案選擇對話框、 JColorChooser() 色彩選擇對話框。
但一旦點選該功能表的標題文字時,便會拉出該功能表的下拉式
選單。其建構子及常用方法如下 : 一、建構子: 1. JMenu()
建立一個沒有標題文字的空白功能表。
2. JMenu(String text) 建立一個標題文字為text的功能表。
二、常用的方法:
1. JMenuItem add(JMenuItem item)
② 參數msg:用來設定在對話框中所要顯示的訊息,它可以
是文字字串,也可以是圖示或其它物件。
2. int showConfirmDialog(Component parent, Object msg, String title, int optionType) ① 參數title:用來指定對話框的標題列文字。 ② 參數optionType:用來設定放置在對話框中等待使用者答覆 的按鈕, 有兩種設定值:
二、常用的方法:
1. void show(Component invoker, int x, int y) 在參數invoker指定元件的座標(x, y)上,顯示快顯功能表。
2. boolean isPopupTrigger()
判斷快顯功能表是否有被觸發。一般是按滑鼠右鍵時,便會 構成觸發快顯功能表。
JavaSwing精品PPT课件
容器类控件 普通容器 com.kingdee.bos.ctrl.swing.KDPanel 滚动容器 com.kingdee.bos.ctrl.swing.KDScrollPane 页签容器 com.kingdee.bos.ctrl.swing.KDTabbedPane 分割区容器 com.kingdee.bos.ctrl.swing.KDSplitPane 标题容器 com.kingdee.bos.ctrl.swing.KDContainer 编辑器容器 com.kingdee.bos.ctrl.swing.KDLabelContainer
KDMenu
KDMenuItem
KDFormattedTextField
KDNumberTextField KDBusiCurrencyField,KDPanel
KDScrollBar, …
组合控件:由元控件组合而成的控件。
KDComboBox KDList KDTree KDDatePicker
KDTable
2 文本显示控件 com.kingdee.bos.ctrl.swing.KDLablel
P8
应用场景分类2
窗口系列控件
窗体 com.kingdee.bos.ctrl.swing.KDFrame
对话框 com.kingdee.bos.ctrl.swing.KDDialog
内部窗体 com.kingdee.bos.ctrl.swing.KDInternalFrame
菜单栏 com.kingdee.bos.ctrl.swing.KDMenuBar
状态栏 com.kingdee.bos.ctrl.swing.KDStatusBar
按钮类型控件
功能按钮 com.kingdee.bos.ctrl.swing.KDButton
KDMenu
KDMenuItem
KDFormattedTextField
KDNumberTextField KDBusiCurrencyField,KDPanel
KDScrollBar, …
组合控件:由元控件组合而成的控件。
KDComboBox KDList KDTree KDDatePicker
KDTable
2 文本显示控件 com.kingdee.bos.ctrl.swing.KDLablel
P8
应用场景分类2
窗口系列控件
窗体 com.kingdee.bos.ctrl.swing.KDFrame
对话框 com.kingdee.bos.ctrl.swing.KDDialog
内部窗体 com.kingdee.bos.ctrl.swing.KDInternalFrame
菜单栏 com.kingdee.bos.ctrl.swing.KDMenuBar
状态栏 com.kingdee.bos.ctrl.swing.KDStatusBar
按钮类型控件
功能按钮 com.kingdee.bos.ctrl.swing.KDButton
JavaSwing界面设计(所有控件及示例)PPT课件
选课 JList
确认 JButton
保存 JFileChooser
结果 JTextArea
要求输入完毕按“确认”将该学生的信息记录到“结果”中;按
“保存”将结果保存到一个指定的文件中;基本信息与结
果界面上下分布在一个JSplitPane中;屏幕下方显示当前
时间
22
示例:学生信息管理系统
步骤一:由JFrame创建初始的用户界面,获得JFrame的容器,
JInternalFrame、Box等创建中间容器 ③ 由基本组件类创建有关的组件 ④ 将基本组件按照某种布局添加到中间容器中,根据需
要可能会用到容器的嵌套 ⑤ 将中间容器按照某种布局添加到顶层容器中,形成满
足用户需求的操作界面
20
获得JFrame的容器并添加组件
Container con = getContentPane(); JPanel panel = new JPanel(); JButton butt = new JButton("Press Me"); panel.add(butt); con.add(panel);
3
用户界面概述
一.用户界面的类型
字符用户界面(CUI):例如,MS-DOS 图形用户界面(GUI):例如,Microsoft Windows
二.GUI的组件
组件
基本的控制组件,例如:Button、Label等。 容器:能容纳和排列组件的组件
组件继承它的父容器的性质
4
Label
Frame Window
ng.Object
ponent
java.awt.Container
java.awt.Panel
java.awt.Window javax.swing.JComponent
Swing组件应用介绍课件
ERP、CRM等系统。
2
桌面应用:Swing组件在桌 面应用中广泛使用,如文件
管理器、邮件客户端等。
3
教育应用:Swing组件在教 育应用中广泛使用,如教学
软件、在线课程等。
4
游戏应用:Swing组件在游 戏应用中广泛使用,如2D
游戏、休闲游戏等。
组件选择与搭配
选择合适的组件:根据需求选择合适的Swing组 件,如按钮、文本框、列表等。
● 窗口组件:JFrame、JDialog、JWindow ● 面板组件:JPanel、JScrollPane、JSplitPane ● 按钮组件:JButton、JToggleButton、JCheckBox ● 文本组件:JLabel、JTextField、JPasswordField ● 选择组件:JComboBox、JList、JRadioButton ● 图像组件:JIcon、JImageIcon、JLabel ● 菜单组件:JMenuBar、JMenu、JMenuItem ● 工具栏组件:JToolBar、JButton、JToggleButton ● 布局管理器:BorderLayout、FlowLayout、GridLayout ● 事件处理:ActionListener、MouseList减少组件数量:尽量减少不 必要的组件,提高页面加载
速度
缓存数据:对于经常使用的数 据,可以缓存起来,减少服务
器请求次数
延迟加载:对于不需要立即 显示的组件,可以延迟加载,
提高页面响应速度
压缩图片:对于页面中的图 片,可以压缩后再使用,减 少页面大小,提高加载速度
04
企业级应用开发: Swing组件可用于开发 企业级应用,如ERP、 CRM等。
● 标签(JLabel):用于显示文本或图标 ● 按钮(JButton):用于触发事件 ● 文本框(JTextField):用于输入文本 ● 列表框(JList):用于显示和选择列表项 ● 组合框(JComboBox):用于从列表中选择项目 ● 复选框(JCheckBox):用于表示选中或未选中状态 ● 单选按钮(JRadioButton):用于表示选中或未选中状态,一组单选按钮只能选中一个 ● 滚动条(JScrollBar):用于滚动显示内容 ● 表格(JTable):用于显示和编辑表格数据 ● 树(JTree):用于显示和编辑树形结构数据 ● 菜单(JMenu):用于显示和选择菜单项
2
桌面应用:Swing组件在桌 面应用中广泛使用,如文件
管理器、邮件客户端等。
3
教育应用:Swing组件在教 育应用中广泛使用,如教学
软件、在线课程等。
4
游戏应用:Swing组件在游 戏应用中广泛使用,如2D
游戏、休闲游戏等。
组件选择与搭配
选择合适的组件:根据需求选择合适的Swing组 件,如按钮、文本框、列表等。
● 窗口组件:JFrame、JDialog、JWindow ● 面板组件:JPanel、JScrollPane、JSplitPane ● 按钮组件:JButton、JToggleButton、JCheckBox ● 文本组件:JLabel、JTextField、JPasswordField ● 选择组件:JComboBox、JList、JRadioButton ● 图像组件:JIcon、JImageIcon、JLabel ● 菜单组件:JMenuBar、JMenu、JMenuItem ● 工具栏组件:JToolBar、JButton、JToggleButton ● 布局管理器:BorderLayout、FlowLayout、GridLayout ● 事件处理:ActionListener、MouseList减少组件数量:尽量减少不 必要的组件,提高页面加载
速度
缓存数据:对于经常使用的数 据,可以缓存起来,减少服务
器请求次数
延迟加载:对于不需要立即 显示的组件,可以延迟加载,
提高页面响应速度
压缩图片:对于页面中的图 片,可以压缩后再使用,减 少页面大小,提高加载速度
04
企业级应用开发: Swing组件可用于开发 企业级应用,如ERP、 CRM等。
● 标签(JLabel):用于显示文本或图标 ● 按钮(JButton):用于触发事件 ● 文本框(JTextField):用于输入文本 ● 列表框(JList):用于显示和选择列表项 ● 组合框(JComboBox):用于从列表中选择项目 ● 复选框(JCheckBox):用于表示选中或未选中状态 ● 单选按钮(JRadioButton):用于表示选中或未选中状态,一组单选按钮只能选中一个 ● 滚动条(JScrollBar):用于滚动显示内容 ● 表格(JTable):用于显示和编辑表格数据 ● 树(JTree):用于显示和编辑树形结构数据 ● 菜单(JMenu):用于显示和选择菜单项
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
•
{
•
public void actionPerformed(ActionEvent e)
•
{
•
new test1().l.setText("");
•
}
•
}
从上例可以看出一个事件处理的过 程
• 1 。定义实现时间监听接口类:class ActionHandler implements ActionListener{},
•
import java.awt.*;
•
import java.awt.event.*;
•
public class test1
•
{
•
static final int WIDTH=300;
•
static final int HEIGHT=200;
•
static JTextField l=new JTextField(20);
•
contentPane.add(b,"South");
•
ActionListener ac=new ActionHandler();// 创建一个事件监听器
•
b.addActionListener(ac); //向事件源注册
•
}
•
}
•
//定义实现事件监听类
•
class ActionHandler implements ActionListener
•
JPanel contentPane=new JPanel();
•
contentPane.setLayout(new BorderLayout());
•
jf.setContentPane(contentPane);
•
JButton b=new JButton("清空文本框中的信息");
•
contentPane.add(l,"North");
AJFrame
内容面板
菜单条
基本组件
Tool Tips工具提示功能
Jcomponet类的功能图
绘画边框功能
可插入的观感器 自定义属性 layout支持
JComponet类的功能
无障碍功能 拖曳支持 双缓冲 键绑定
面板组件(即中间容器)
• 1.Jpanel,JScrollPane,JSliptPane,JTabbed Pane,JInternalFrame,JLayeredPane,JRoot Pane,
中间容器类
特殊中间组件类
顶层容器:JFrame,JApplet,JDialog,JWindow。所 谓的顶层容器也可以说是千米那所说的window组件了, 它是可以独立显示的组件。
中间容器:JPanel,JScrollPane,JSplitPane,JToolBar 。 所谓的中间容器也就是指那些可以充当载体,但也是 不可以独立显示的组件。通俗的说,就是一些基本控 件可以放在其中,但是他不能独立显示,必须要意图 依托顶层容器内才可以。
Jcomponet
Componet Container
JavaSwing组件间的继承 关系
Window
Frame
Dialog
JButton JTextfileld JTextArea
JTable JPanel
JFrame
JDialog
功能上划分swing组件
swing组件
顶层组件类
中间组件类
基本组件类
• 15树组件 • 16Swing观感器 • 17swing与并发 • 18swing模型架构 • 19swing的其它特性 • 20swing实现通讯系统
Swing事件处理机制
•
//这段程序代码主要是创建一个文本框和一个普通按钮组件,当单击这个按钮组件时,会触发动作事件,清空文本框中的数据
•
import javax.swing.*;
特殊容器:在GUI上起特殊作用的中间层,如 JInternalFrame,JLayeredPane,JRootPane.
这里特殊容器类其实就是中间容器类中的一种,只不过 它在图形上更加能够起到美化和专业化的作用。
基本组件:实现人机交互的组件,如 JButton,JcomboField。
• eg:上例
• //定义实现事件监听类
• class ActionHandler implements ActionListener
•{
•
public void actionPerformed(ActionEvent e)
•
{
•
new test1().l.setText("");
•
}
•}
• 2.创建事件监听器:ActionListener ac=new ActionHandler().
该课本的大概内容简介
• 第3章swing组件基础 • 4标签和按钮组件 • 5布局管理器 yout • 6面板组件 ...Pane
• 7事件处理机制 • 8列表框和下拉列表组件和下拉列表框组件 • 9进度条,时间,滑块,和分隔条组件 • 10选取器组件 • 11文本组件 ...Field • 12窗口,对话框和JApplet组件 • 13菜单条和工具条组件 • 14表格组件
• 3.向事件源注册监听器对象: b.addActionListener(ac)
•
public static void main(String[] args)
•
{
•
JFrame jf=new JFrame("测试程序");
•
jf.setSize(WIDTH,HEIGHT);
•
jf.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
•
jf.setVisible(true);