javaSWING讲解.ppt

上传人:xt****7 文档编号:17047518 上传时间:2020-11-07 格式:PPT 页数:40 大小:479.50KB
收藏 版权申诉 举报 下载
javaSWING讲解.ppt_第1页
第1页 / 共40页
javaSWING讲解.ppt_第2页
第2页 / 共40页
javaSWING讲解.ppt_第3页
第3页 / 共40页
资源描述:

《javaSWING讲解.ppt》由会员分享,可在线阅读,更多相关《javaSWING讲解.ppt(40页珍藏版)》请在装配图网上搜索。

1、尚学堂 手把手教程 授课:张志宇 版权所有:尚学堂科技 Servlet SWING Java GUI 编程 手把手教程 版权所有:尚学堂科技 Servlet 尚学堂 本章内容 Java图形界面编程概述 AWT和 SWING SWING的容器组件和 GUI组件 容器组件: JFrame、 JPanel GUI组件: JLabel、 JTextField、 JTextArea、 JButton、 JCheckBox、 JRadioButton、 JComboBox 布局管理器 BorderLayout 、 FlowLayout、 GridLayout 事件机制 菜单和对话框 手把手教程 版权所有:

2、尚学堂科技 Servlet 尚学堂 GUI编程概述 AWT AWT(抽象窗口工具集 Abstract Window Toolkit)包括了很多类和接口, 用于 Java Application 的 GUI( Graphics User Interface 图形用户界面 )编程。 使用 AWT所涉及的类一般在 java.awt包及其子包中。 SWING SWING是 AWT的扩展和功能加强, 纯 Java编写,是构建 java图形界面标准 的 API。 使用 SWING所涉及的类一般在 javax.swing包及其子包中。 SWING和 AWT对比起来 SWING实现了真正意义的跨平台 性能更加

3、稳定 提供工具丰富的桌面图形界面 手把手教程 版权所有:尚学堂科技 Servlet 尚学堂 SWING容器组件 1 主窗口 Swing 应用程序 创建容器 设置容器大小 (对框架及面板而言) 设置容器可见度 (对框架及面板而言) 创建顶层容器 顶层容器(每个应用 程序中至少有一个) 内容面板 主要显示区域包含 GUI 中的可视组件 手把手教程 版权所有:尚学堂科技 Servlet 尚学堂 SWING容器组件 2 javax.swing 包 常见容器 JFrame JScrollPane JPanel 1. 扩展 java.awt.Frame 类 2. 用于在 Swing 程序中创建 窗口 3.

4、 包含边框、标题和用于关 闭和图标化窗口的按钮 1. 中间容器 2. 用于将较小的轻量级组件 组合在一起 3. 与内容窗格相似,面板在 默认情况下不透明 1. 管理视区、滚动条及可 选的行和列的标题视区 手把手教程 版权所有:尚学堂科技 Servlet 尚学堂 JFrame JFrame是 Window的子类,由 JFrame或其子类创建的对象为一个窗体。 JFrame的常用构造方法: JFrame(); JFrame(String);创建带标题的窗口 setBounds(int x,int y,int width,int height) 设置窗体位置和大小, x, y是左上角坐标, widh

5、t和 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)设置是否可以调整大小。 手把手教程 版权所有:尚学堂科技 Servlet 尚学堂 J

6、Panel 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 la

7、yout)使用指定的布局管理器初始化 手把手教程 版权所有:尚学堂科技 Servlet 尚学堂 课 堂 练 习 课堂练习 设计一个含有 JPanel的自定义的 JFrame类含有,形式如下图: 手把手教程 版权所有:尚学堂科技 Servlet 尚学堂 SWING的 GUI组件 JTexField JComboBox JCheckBox JButton JRadioButton JLabel JTexArea 手把手教程 版权所有:尚学堂科技 Servlet 尚学堂 JLabel(标签) 10 方法 说明 JLabel() JLabel()创建一个默认的 JLabel 实例 JLabel(Str

8、ing text) 以指定的文本创建 JLabel 实例 JLabel(Icon image) 以指定的图像创建 JLabel 实例 getText() 返回标签显示的文本字符串 setIcon(Icon icon) 定义 标签将显示的内容 setText(String text) 定义此组件将要显示的单行文本 手把手教程 版权所有:尚学堂科技 Servlet 尚学堂 JTextField(文本输入框) 11 方法 说明 JTextField() 构造一个新的文本输入框 JTextField(String text) 构造一个新的文本输入框 , 以指定文本作为初 始文本 getColumns(

9、) 返回文本字段中的列数 setColumns(int columns) 设置文本字段中的列数 , 然后使布局无效 setHorizontalAlignment(int value) 设置文本字段中文本的水平对齐方式: JTextField. LEFT JTextField.CENTER JTextField.RIGHT 手把手教程 版权所有:尚学堂科技 Servlet 尚学堂 JTextArea(文本区域) 12 说明 描述 JTextArea() 构造一个新的文本区 JTextArea(String text) 用指定的显示文本构造一个新的文本区 setFont(Font f) 设置文本区

10、的字体 getText() 获取文本区中的文本字符串 手把手教程 版权所有:尚学堂科技 Servlet 尚学堂 JButton(按钮) 13 方法 说明 JButton( ) 创建不带文本和图标的按钮 JButton(Icon icon) 创建带图标的按钮 JButton(String text) 创建带文本的按钮 JButton(String text, Icon icon) 创建带文本和图标的按钮 setRolloverIcon(Icon img) 当鼠标经过时 , 显示指定的图标 setSelectedIcon(Icon img) 当选择按钮时 , 显示 img 指定的图标 手把手教程

11、版权所有:尚学堂科技 Servlet 尚学堂 JCheckBox(复选框) 14 方法 说明 JCheckBox( ) 创建初始非选中的复选框 , 且不带文本或 图标 JCheckBox(String text) 用指定的文本创建初始非选中的复选框 。 JCheckBox(String text, boolean selected) 用指定文本创建一个复选框 , 并指定是否 初始选中该复选框 手把手教程 版权所有:尚学堂科技 Servlet 尚学堂 JRadioButton(单选按钮) 15 方法 说明 JRadioButton() 创建初始非选中的单选按钮 , 不设置其文本 JRadioBu

12、tton(String text) 用指定的文本创建非选中的单选按钮 JRadioButton(String text, boolean selected) 用指定的文本和选择状态创建单选按钮 手把手教程 版权所有:尚学堂科技 Servlet 尚学堂 JComboBox(下拉框) 方法 说明 JcomboBox() 创建一个下拉框实例 addItem(Object obj) 将项添加至项的列表 getItemAt(int index) 返回指定索引位置的列表项 getItemCount() 返回列表 ( 作为对象 ) 中的项数 getSelectedItem() 将当前选择的项作为一个对象返回

13、 getSelectedIndex() 返回当前选择项的索引位置 手把手教程 版权所有:尚学堂科技 Servlet 尚学堂 布局管理器 用户界面上的 GUI组件可以按照一定的格式布局 例如水平排列,或按网格方式排列 布局管理器类是一组类,它 实现 java.AWT.LayoutManager 接口 帮助在容器中放置组件 Java 中可用的各种布局如下: FlowLayout BorderLayout GridLayout . 手把手教程 版权所有:尚学堂科技 Servlet 尚学堂 FlowLayout布局管理器 FlowLayout是 Panel类的默认布局管理器。 FlowLayout布局

14、管理器对组件逐行定位,行内从左到右,一行排满 后换行。 不改变组件的大小,按组件原有尺寸显示组件,可设置不同的组件 间距 ,行距以及对齐方式。 FlowLayout布局管理器默 认的对齐方式是居中。 手把手教程 版权所有:尚学堂科技 Servlet 尚学堂 FlowLayout的构造方法 new FlowLayout(FlowLayout.RIGHT,20,40); 右对齐,组件之间水平间距 20个像素,垂直间距 40个 像素。 new FlowLayout(FlowLayout.LEFT); 左对齐,水平和垂直间距为缺省值( 5)。 new FlowLayout(); 使用缺省的居中对齐方式

15、,水平和垂直间距为缺省值( 5)。 手把手教程 版权所有:尚学堂科技 Servlet 尚学堂 BorderLayout布局管理器 BorderLayout是 JFrame类的默认布局管理器。 BorderLayout将整个容器的布局划分成 东( EAST) 西( WEST) 南( SOUTH) 北( NORTH) 中( CENTER)五个区域,组件只能被添加到指定的区域 如不指定组件的加入部位,则默认加入到 CENTER区。 每个区域只能加入一个组件,如加入多个,则先前加入的会 被覆盖。 手把手教程 版权所有:尚学堂科技 Servlet 尚学堂 BorderLayout布局管理器 Border

16、Layout型布局容器尺寸缩放原则: 北、南两个区域在水平方向缩放。 东、西两个区域在垂直方向缩放。 中部可在两个方向上缩放。 手把手教程 版权所有:尚学堂科技 Servlet 尚学堂 GridLayout 布局管理器 GridLayout型布局管理器将空间划分成规则的矩形网格,每 个单元格区域大小相等。 组件被添加到每个单元格中,先从 左到右添满一行后换行,再从上到下。 在 GridLayout 构造方法中指定分割的行数和列数: 如: GridLayout(3,4) 手把手教程 版权所有:尚学堂科技 Servlet 尚学堂 布局管理器总结 JFrame是一个顶级窗口, JFrame的缺省布局

17、管理器为 BorderLayout JPanel无法单独显示,必须添加到某个容器中。 JPanel的缺省布局管理器为 FlowLayout。 当把 JPanel作为一个组件添加到某个容器中后,该 Panel仍然可以有自己 的布局管理器。 使用布局管理器时,布局管理器负责各个组件的大小和位置,因此用户无 法在这种情况下设置组件大小和位置属性,如果试图使用 Java语言提供 的 setLocation(), setSize(), setBounds()等方法,则都会被布局管 理器覆盖。 如果用户确实需要亲自设置组件大小或位置,则应取消该容器的布局管理 器,方法为: setLayout(null)

18、手把手教程 版权所有:尚学堂科技 Servlet 尚学堂 课堂练习 手把手教程 版权所有:尚学堂科技 Servlet 尚学堂 SWING的事件模型 事件源对象 实现了某种 监听器 接口的类的对象 注册 当某种事件发生 向监听器传送某种事件对象 (封装了某种事件的信息) 接到事件对象后 进行某种处理 手把手教程 版权所有:尚学堂科技 Servlet 尚学堂 源对象 监听器 事件 传播 事件的实例 方法 传递途径 事件处理 Swing 中的 GUI 组件 适配器对象 手把手教程 版权所有:尚学堂科技 Servlet 尚学堂 先看如下代码运行效果 . public class MyFrame ext

19、ends JFrame public static void main(String args) MyFrame mf=new MyFrame(); mf.setTitle(我的窗口 ); 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

20、.setVisible(true); class MyActionListener implements ActionListener public void actionPerformed(ActionEvent e) System.out.println(点击了按钮呢 ); 手把手教程 版权所有:尚学堂科技 Servlet 尚学堂 事件实现案例 案例 1:按钮触发控制台打印 案例 2:按钮触发其他组件发生变化 案例 3:计算器 手把手教程 版权所有:尚学堂科技 Servlet 尚学堂 内部类 应用:使用内部类优化“计算器” 在 Java中,允许一个类定义在另一个类的内部,前者称为内部类 内

21、部类的名字不能与包含它的类名相同; 内部类 可以访问包含它的类的所有成员 ; 内部类和外层封装它的类之间 存在逻辑上的所属关系 好处 : 可以方便的访问包装类成员 可以更清楚的组织逻辑,防止不应该被其它类访问的类进行访问 何时使用 该类不允许或者不需要其它类进行访问时候 手把手教程 版权所有:尚学堂科技 Servlet 尚学堂 匿名内部类 特殊的语法格式 btnCancel.addActionListener(new ActionListener() public void actionPerformed(ActionEvent e) ); 在计算器中使用匿名内部类实现 手把手教程 版权所有:

22、尚学堂科技 Servlet 尚学堂 SWING中的对话框 1 Java 中的对话框使用 JOptionPane来实现,常见的有消息框、输入框和 确认框 JOptionPane.showMessageDialog(.)方法 用于显示各种图标,如用于警 告消息、问题、错误和信息等的消息框, 而且还可以自己定义图片。 JOptionPane.INFOMATION_MESSAGE JOptionPane.ERROR_MESSAGE JOptionPane.QUESTION_MESSAGE . “消息”对话框 “错误”对话框 “问题”对话框 手把手教程 版权所有:尚学堂科技 Servlet 尚学堂 SW

23、ING中的对话框 2 JOptionPane.showInputDialog(.)用于实现可输入对话框,该方法直接返 回输入的字符串 JOptionPane.showConfirmDialog(.)用于实现确认对话框,返回值根据 用户现在而定。 0:是 1:否 2:取消 手把手教程 版权所有:尚学堂科技 Servlet 尚学堂 SWING中的菜单 1 显示一个项目列表,指明用户可以执行的各项操作 文件 编辑 格式 帮助 字体 段落 项目符号和编号 背景色 红色 绿色 黑色 菜单 子菜单 手把手教程 版权所有:尚学堂科技 Servlet 尚学堂 SWING中的菜单 2 包含 javax.swin

24、g 包的菜单类的类层次结构 JMenuBar 文件 编辑 格式 帮助 新建 打开 关闭 JMenu JMenuItem 手把手教程 版权所有:尚学堂科技 Servlet 尚学堂 JMenuBar类 JMenuBar菜单栏,是任何菜单的开始,菜单必须加载 JMenuBar上。 通过 JFrame.setJMenuBar(JMenuBar)方法将 JMenuBar 手把手教程 版权所有:尚学堂科技 Servlet 尚学堂 JMenu类 表示菜单, 当用户单击 JMenu 时,显示 JMenu 的菜单项。 可通过 JMenu(String)构造方法,直接指定菜单名。 通过 JMenuBar.add(

25、JMenu)将菜单加到菜单栏。 手把手教程 版权所有:尚学堂科技 Servlet 尚学堂 JMenuItem类 JMenuItem 组件通常是 JMenu 中选项的标题,可直接通过 JMenuItem(String)构造方法指定菜单项名称。 在 JMenuItem 中除了可以添加字符串外,还可添加图标 可通过构造方法 JMenuItem(Icon)来实现 两种特殊的菜单项 JCheckBoxMenuItem类,使用这个类可实现复选框,默认情况下可 为其分配选定标记或取消选定标记。 JRadioButtonMenuItem类,使用这个类可实现单选框,在同一时刻 只能选择一个菜单项 , 但需要配合 ButtonGroup实现 。 注意: JMenu也可以作为菜单项,称为子菜单。 手把手教程 版权所有:尚学堂科技 Servlet 尚学堂 课堂练习 实现“记事本”的菜单效果 手把手教程 版权所有:尚学堂科技 Servlet 尚学堂 菜单的事件处理 给“记事本”添加事件,实现以下功能 文件菜单 新建功能 打开文件功能 保存文件功能 关闭功能 格式菜单 字体设置 颜色设置 帮助 弹出“关于我们”对话框 手把手教程 版权所有:尚学堂科技 Servlet 尚学堂 GUI总结

展开阅读全文
温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!