javaSWING讲解PPT课件
合集下载
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
• 东(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
• 北、南两个区域在水平方向缩放。 • 东、西两个区域在垂直方向缩放。 • 中部可在两个方向上缩放。
第20页/共40页
GridLayout 布局管理器
• GridLayout型布局管理器将空间划分成规则的矩形网格,每个单元格区 域大小相等。 组件被添加到每个单元格中,先从左到右添满一行后换行, 再从上到下。
本章内容
• Java图形界面编程概述 • AWT和SWING
• SWING的容器组件和GUI组件 • 容器组件:JFrame、JPanel • GUI组件:JLabel、JTextField、JTextArea、JButton、JCheckBox、JRadioButton、JComboBox
• 布局管理器 • BorderLayout 、FlowLayout、GridLayout
• FlowLayout布局管理器默 认的对齐方式是居中。
第17页/共40页
FlowLayout的构造方法 • new FlowLayout(FlowLayout.RIGHT,20,40);
• 右对齐,组件之间水平间距20个像素,垂直间距40个像素。 • new FlowLayout(FlowLayout.LEFT);
SWING的事件模型
注册
事件源对象
实现了某种监听器 接口的类的对象
接到事件对象后 进行某种处理
当某种事件发生
向监听器传送某种事件对象 (封装了某种事件的信息)
第24页/共40页
事件处理
源对象
Swing 中的 GUI 组件
事件 传播
监听器 适配器对象
事件的实例 传递途径
方法
第25页/共40页
先看如下代码运行效果...
返回标签显示的文本字符串 定义 标签将显示的内容 定义此组件将要显示的单行文本
第9页/共40页
J Te x t F i e l d ( 文 本 输 入 框 )
方法
JTextField() JTextField(String text)
说明
构造一个新的文本输入框
构造一个新的文本输入框 ,以指定文本作为初 始文本
方法
JLabel() JLabel(String text) JLabel(Icon image)
getText() setIcon(Icon icon) setText(String text)
说明
JLabel()创建一个默认的 JLabel 实例 以指定的文本创建 JLabel 实例 以指定的图像创建 JLabel 实例
boolean selected)
第14页/共40页
JComboBox(下拉框)
方法
JcomboBox() addItem(Object obj) getItemAt(int index) getItemCount() getSelectedItem() getSelectedIndex()
创建一个下拉框实例
当鼠标经过时,显示指定的图标 当选择按钮时,显示 img 指定的图标
第12页/共40页
JCheckBox(复选框)
方法
说明
JCheckBox( )
创建初始非选中的复选框,且不带文本或 图标
JCheckBox(String text) 用指定的文本创建初始非选中的复选框。
JCheckBox(String text, 用指定文本创建一个复选框,并指定是否
第4页/共40页
JFrame
• JFrame是Window的子类,由JFrame或其子类创建的对象为一个窗体。
• JFrame的常用构造方法:
• JFrame();
• JFrame(String);创建带标题的窗口
setBounds(int x,int y,int width,int height) 设置窗体位置和大小,x,y是左上角坐标, widht和height是宽度和高度
setSize(int width,int height)
设置窗体的大小,widht和height分别是宽度和高度。
setLocation(int x,int y)
设置窗体的位置,x,y是左上角坐标
setBackground(Color c) 设置背景颜色,参数为Color对象。
setVisible(boolean b)设置是否可见。 setTitle(String name) String getTitle() setResizable(boolean b)设置是否可以调整大小。
getColumns()
返回文本字段中的列数
setColumns(int columns)
设置文本字段中的列数,然后使布局无效
setHorizontalAlignment(int 设 置 文 本 字 段 中 文 本 的 水 平 对 齐 方 式 :
value)
JTextField. LEFT
JTextField.CENTER JTextField.RIGHT
• 左对齐,水平和垂直间距为缺省值(5)。 • new FlowLayout();
• 使用缺省的居中对齐方式,水平和垂直间距为缺省值(5)。
第18页/共40页
BorderLayout布局管理器 • BorderLayout是JFrame类的默认布局管理器。 • BorderLayout将整个容器的布局划分成
• SWING
• SWING是AWT的扩展和功能加强,纯Java编写,是构建java图形界面标准的API。 • 使用SWING所涉及的类一般在javax.swing包及其子包中。 • SWING和AWT对比起来 • SWING实现了真正意义的跨平台 • 性能更加稳定 • 提供工具丰富的桌面图形界面
第2页/共40页
第6页/共40页
课堂练习
课堂练习
设计一个含有JPanel的自定义的 JFrame类含有,形式如下图:
第7页/共40页
SWING的GUI组件
JTexField
JLabel
JRadioButton
JButton
第8页/共40页
JComboBox JChecbel(标签)
JPanel
JScrollPane
1. 扩展 java.awt.Frame1.类中间容器
1. 管理视区、滚动条及可
2. 用于在 Swing 程序中2.创用建于将较小的轻量级组件 选的行和列的标题视区
窗口
组合在一起
3. 包含边框、标题和用3于. 与关内容窗格相似,面板在
闭和图标化窗口的按钮默认情况下不透明
第10页/共40页
J Te x t A r e a ( 文 本 区 域 )
说明
JTextArea() JTextArea(String text)
描述
构造一个新的文本区 用指定的显示文本构造一个新的文本区
setFont(Font f) getText()
设置文本区的字体 获取文本区中的文本字符串
第11页/共40页
public class MyFrame extends JFrame{ public static void main(String[] args) { MyFrame mf=new MyFrame(); m f. s e t T i t l e ( " 我 的 窗 口 " ) ; mf.setBounds(200, 200, 300, 200); mf.setDefaultCloseOperation(mf.EXIT_ON_CLOSE);// 关闭窗体 JButton btn=new JButton("点击我"); MyActionListener mal=new MyActionListener(); btn.addActionListener(mal); mf.add(btn); mf.setVisible(true); }
• 事件机制 • 菜单和对话框
第1页/共40页
GUI编程概述
• AWT
• AWT(抽象窗口工具集 Abstract Window Toolkit) 包括了很多类和接口,用于Java Application 的GUI(Graphics User Interface 图形用户界面)编程。
• 使用AWT所涉及的类一般在java.awt包及其子包中。
第5页/共40页
JPanel
• JPanel对象可以看成可以容纳GUI组件的空间 • JPanel对象可以拥有自己的布局管理器 • JPanel类拥有从其父类继承来的
• setBounds(int x,int y,int width,int height) • setSize(int width,int height) • setLocation(int x,int y) • setBackground(Color c) • setLayout(LayoutManager mgr) 等方法。 • JPanel的构造方法为: • JPanel() 使用默认的 FlowLayout类布局管理器初始化。 • JPanel(LayoutManager layout)使用指定的布局管理器初始化
boolean selected)
初始选中该复选框
第13页/共40页
JRadioButton(单选按钮)
方法
说明
JRadioButton()
创建初始非选中的单选按钮,不设置其文本
JRadioButton(String text) 用指定的文本创建非选中的单选按钮
JRadioButton(String text, 用指定的文本和选择状态创建单选按钮
• 在 GridLayout 构造方法中指定分割的行数和列数: • 如:GridLayout(3,4)
第21页/共40页
布局管理器总结
• JFrame是一个顶级窗口,JFrame的缺省布局管理器为BorderLayout • JPanel无法单独显示,必须添加到某个容器中。
• JPanel的缺省布局管理器为FlowLayout。 • 当把JPanel作为一个组件添加到某个容器中后,该Panel仍然可以有自己的布局管理器。 • 使用布局管理器时,布局管理器负责各个组件的大小和位置,因此用户无法在这种情况下设置组件大小和
JButton(按钮)
方法
JButton( )
说明
创建不带文本和图标的按钮
JButton(Icon icon)
创建带图标的按钮
JButton(String text)
创建带文本的按钮
JButton(String text, Icon icon) 创建带文本和图标的按钮
setRolloverIcon(Icon img) setSelectedIcon(Icon img)
• Java 中可用的各种布局如下: • FlowLayout • BorderLayout • GridLayout • ...
第16页/共40页
FlowLayout布局管理器
• FlowLayout是Panel类的默认布局管理器。 • FlowLayout布局管理器对组件逐行定位,行内从左到右,一行排满后换行。 • 不改变组件的大小,按组件原有尺寸显示组件,可设置不同的组件间距,行距以及对齐方式。
第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
• 北、南两个区域在水平方向缩放。 • 东、西两个区域在垂直方向缩放。 • 中部可在两个方向上缩放。
第20页/共40页
GridLayout 布局管理器
• GridLayout型布局管理器将空间划分成规则的矩形网格,每个单元格区 域大小相等。 组件被添加到每个单元格中,先从左到右添满一行后换行, 再从上到下。
本章内容
• Java图形界面编程概述 • AWT和SWING
• SWING的容器组件和GUI组件 • 容器组件:JFrame、JPanel • GUI组件:JLabel、JTextField、JTextArea、JButton、JCheckBox、JRadioButton、JComboBox
• 布局管理器 • BorderLayout 、FlowLayout、GridLayout
• FlowLayout布局管理器默 认的对齐方式是居中。
第17页/共40页
FlowLayout的构造方法 • new FlowLayout(FlowLayout.RIGHT,20,40);
• 右对齐,组件之间水平间距20个像素,垂直间距40个像素。 • new FlowLayout(FlowLayout.LEFT);
SWING的事件模型
注册
事件源对象
实现了某种监听器 接口的类的对象
接到事件对象后 进行某种处理
当某种事件发生
向监听器传送某种事件对象 (封装了某种事件的信息)
第24页/共40页
事件处理
源对象
Swing 中的 GUI 组件
事件 传播
监听器 适配器对象
事件的实例 传递途径
方法
第25页/共40页
先看如下代码运行效果...
返回标签显示的文本字符串 定义 标签将显示的内容 定义此组件将要显示的单行文本
第9页/共40页
J Te x t F i e l d ( 文 本 输 入 框 )
方法
JTextField() JTextField(String text)
说明
构造一个新的文本输入框
构造一个新的文本输入框 ,以指定文本作为初 始文本
方法
JLabel() JLabel(String text) JLabel(Icon image)
getText() setIcon(Icon icon) setText(String text)
说明
JLabel()创建一个默认的 JLabel 实例 以指定的文本创建 JLabel 实例 以指定的图像创建 JLabel 实例
boolean selected)
第14页/共40页
JComboBox(下拉框)
方法
JcomboBox() addItem(Object obj) getItemAt(int index) getItemCount() getSelectedItem() getSelectedIndex()
创建一个下拉框实例
当鼠标经过时,显示指定的图标 当选择按钮时,显示 img 指定的图标
第12页/共40页
JCheckBox(复选框)
方法
说明
JCheckBox( )
创建初始非选中的复选框,且不带文本或 图标
JCheckBox(String text) 用指定的文本创建初始非选中的复选框。
JCheckBox(String text, 用指定文本创建一个复选框,并指定是否
第4页/共40页
JFrame
• JFrame是Window的子类,由JFrame或其子类创建的对象为一个窗体。
• JFrame的常用构造方法:
• JFrame();
• JFrame(String);创建带标题的窗口
setBounds(int x,int y,int width,int height) 设置窗体位置和大小,x,y是左上角坐标, widht和height是宽度和高度
setSize(int width,int height)
设置窗体的大小,widht和height分别是宽度和高度。
setLocation(int x,int y)
设置窗体的位置,x,y是左上角坐标
setBackground(Color c) 设置背景颜色,参数为Color对象。
setVisible(boolean b)设置是否可见。 setTitle(String name) String getTitle() setResizable(boolean b)设置是否可以调整大小。
getColumns()
返回文本字段中的列数
setColumns(int columns)
设置文本字段中的列数,然后使布局无效
setHorizontalAlignment(int 设 置 文 本 字 段 中 文 本 的 水 平 对 齐 方 式 :
value)
JTextField. LEFT
JTextField.CENTER JTextField.RIGHT
• 左对齐,水平和垂直间距为缺省值(5)。 • new FlowLayout();
• 使用缺省的居中对齐方式,水平和垂直间距为缺省值(5)。
第18页/共40页
BorderLayout布局管理器 • BorderLayout是JFrame类的默认布局管理器。 • BorderLayout将整个容器的布局划分成
• SWING
• SWING是AWT的扩展和功能加强,纯Java编写,是构建java图形界面标准的API。 • 使用SWING所涉及的类一般在javax.swing包及其子包中。 • SWING和AWT对比起来 • SWING实现了真正意义的跨平台 • 性能更加稳定 • 提供工具丰富的桌面图形界面
第2页/共40页
第6页/共40页
课堂练习
课堂练习
设计一个含有JPanel的自定义的 JFrame类含有,形式如下图:
第7页/共40页
SWING的GUI组件
JTexField
JLabel
JRadioButton
JButton
第8页/共40页
JComboBox JChecbel(标签)
JPanel
JScrollPane
1. 扩展 java.awt.Frame1.类中间容器
1. 管理视区、滚动条及可
2. 用于在 Swing 程序中2.创用建于将较小的轻量级组件 选的行和列的标题视区
窗口
组合在一起
3. 包含边框、标题和用3于. 与关内容窗格相似,面板在
闭和图标化窗口的按钮默认情况下不透明
第10页/共40页
J Te x t A r e a ( 文 本 区 域 )
说明
JTextArea() JTextArea(String text)
描述
构造一个新的文本区 用指定的显示文本构造一个新的文本区
setFont(Font f) getText()
设置文本区的字体 获取文本区中的文本字符串
第11页/共40页
public class MyFrame extends JFrame{ public static void main(String[] args) { MyFrame mf=new MyFrame(); m f. s e t T i t l e ( " 我 的 窗 口 " ) ; mf.setBounds(200, 200, 300, 200); mf.setDefaultCloseOperation(mf.EXIT_ON_CLOSE);// 关闭窗体 JButton btn=new JButton("点击我"); MyActionListener mal=new MyActionListener(); btn.addActionListener(mal); mf.add(btn); mf.setVisible(true); }
• 事件机制 • 菜单和对话框
第1页/共40页
GUI编程概述
• AWT
• AWT(抽象窗口工具集 Abstract Window Toolkit) 包括了很多类和接口,用于Java Application 的GUI(Graphics User Interface 图形用户界面)编程。
• 使用AWT所涉及的类一般在java.awt包及其子包中。
第5页/共40页
JPanel
• JPanel对象可以看成可以容纳GUI组件的空间 • JPanel对象可以拥有自己的布局管理器 • JPanel类拥有从其父类继承来的
• setBounds(int x,int y,int width,int height) • setSize(int width,int height) • setLocation(int x,int y) • setBackground(Color c) • setLayout(LayoutManager mgr) 等方法。 • JPanel的构造方法为: • JPanel() 使用默认的 FlowLayout类布局管理器初始化。 • JPanel(LayoutManager layout)使用指定的布局管理器初始化
boolean selected)
初始选中该复选框
第13页/共40页
JRadioButton(单选按钮)
方法
说明
JRadioButton()
创建初始非选中的单选按钮,不设置其文本
JRadioButton(String text) 用指定的文本创建非选中的单选按钮
JRadioButton(String text, 用指定的文本和选择状态创建单选按钮
• 在 GridLayout 构造方法中指定分割的行数和列数: • 如:GridLayout(3,4)
第21页/共40页
布局管理器总结
• JFrame是一个顶级窗口,JFrame的缺省布局管理器为BorderLayout • JPanel无法单独显示,必须添加到某个容器中。
• JPanel的缺省布局管理器为FlowLayout。 • 当把JPanel作为一个组件添加到某个容器中后,该Panel仍然可以有自己的布局管理器。 • 使用布局管理器时,布局管理器负责各个组件的大小和位置,因此用户无法在这种情况下设置组件大小和
JButton(按钮)
方法
JButton( )
说明
创建不带文本和图标的按钮
JButton(Icon icon)
创建带图标的按钮
JButton(String text)
创建带文本的按钮
JButton(String text, Icon icon) 创建带文本和图标的按钮
setRolloverIcon(Icon img) setSelectedIcon(Icon img)
• Java 中可用的各种布局如下: • FlowLayout • BorderLayout • GridLayout • ...
第16页/共40页
FlowLayout布局管理器
• FlowLayout是Panel类的默认布局管理器。 • FlowLayout布局管理器对组件逐行定位,行内从左到右,一行排满后换行。 • 不改变组件的大小,按组件原有尺寸显示组件,可设置不同的组件间距,行距以及对齐方式。