java游戏开发学习情境3:图形用户界面设计

上传人:繁星 文档编号:88250602 上传时间:2019-04-22 格式:PPT 页数:33 大小:963KB
返回 下载 相关 举报
java游戏开发学习情境3:图形用户界面设计_第1页
第1页 / 共33页
java游戏开发学习情境3:图形用户界面设计_第2页
第2页 / 共33页
java游戏开发学习情境3:图形用户界面设计_第3页
第3页 / 共33页
java游戏开发学习情境3:图形用户界面设计_第4页
第4页 / 共33页
java游戏开发学习情境3:图形用户界面设计_第5页
第5页 / 共33页
点击查看更多>>
资源描述

《java游戏开发学习情境3:图形用户界面设计》由会员分享,可在线阅读,更多相关《java游戏开发学习情境3:图形用户界面设计(33页珍藏版)》请在金锄头文库上搜索。

1、Java游戏开发 学习情境3:图形用户界面设计,08游戏3-2,目标和任务,目标: 为游戏添加用户界面,用户交互 任务: 网上物流系统界面设计 ,电梯模拟游戏界面设计,学习过程,开始,图形用户界面(GUI)设计,学习内容: GUI概述 容器有容器布局 事件处理概述 事件模型 事件适配器 常用swing组件,项目:设计一个系统界面如下:,项目分析,可将项目分成三个模块实现:,所有的GUI都可分成以上三个模块实现,GUI包,java.awt包,是使用Java进行GUI设计的基础。 javax.swing包,几乎所有AWT组件对应有新功能更强的Swing组件。另外还加入了一些全新的组件。Swing组

2、件在名称上前面多了一个字母“J” 2、GUI的创建步骤 (1)引用需要的包和类。 (2)设置一个顶层的容器。 (3)根据需要为容器设置布局管理器或使用默认布局管理器。 (4)将组件添加到容器内,位置自行设计。 (5)为响应事件的组件编写事件处理代码。,容器、组件、布局和观感,1 容器和组件 组件是可以用图形化的方式显示在屏幕上并能够与用户进行交互的对象。 容器是一种特殊的组件,一种能够容纳其他组件或容器的组件。 2.布局管理器 为了使图形用户界面具有良好的平台无关性,提供了专门用来管理组件在容器中的布局的工具。 3.观感 决定swing应用程序的外观。,常用容器,容器是放置其他 Swing 组

3、件的顶级容器 JFrame 组件用于在 Swing 程序中创建窗体 它的构造函数: JFrame() JFrame(String Title) 组件必须添加至内容窗格,而不是直接添加至 JFrame 对象,示例: frame.getContentPane().add(b);,JPanel 组件,用于将小型的轻量级组件组合在一起 JPanel 的缺省布局为 FlowLayout JPanel 具有下列构造函数: JPanel() JPanel(LayoutManager lm) JApplet也是一种窗口容器,继承自Applet类,Applet小程序是另一种Java程序,与Applet不同的是,

4、它默认的布局管理器是JAppletBorderLayout,而Applet默认的布局管理器是FlowLayout。 可直接向Applet窗口中添加组件,但JApplet不行,添加组件时必须添加到其内容窗格中。得到内容窗格使用方法: getContentPane();,常用组件,标签(JLabel) 它既可以显示文本也可以显示图像 构造函数如下: JLabel(Icon icon):icon表示使用的图标 JLabel(String text,Icon icon,int align):text表示使用的字符串; icon表示使用的图标;align表示水平对齐方式,其值可以为:LEFT、RIGHT

5、、CENTER。 其它常用方法 getText() setText(String text),常用组件,按钮(JButton) 可以使用以下任一构造函数来创建按钮: JButton() : 新建一个空的按钮 JButton(Icon icon) JButton(String text) JButton(String text, Icon icon) JButton btnOk=new JButton(“确定!“); JButton btnCancel=new JButton(“取消!“); getContentPane.add(btnOk); getContentPane.add(btnCan

6、cel);,常用组件,文本框-JTextField JTextField 组件允许输入或编辑单行文本 此类的构造函数包括: JTextField() JTextField(Document doc, String text, int columns) JTextField(int columns) JTextField(String text) JTextField(String text, int columns),常用组件,JTextField tf = new JTextField(20); con.add(tf); 文本框-JPasswordField JPasswordField 组

7、件允许输入或编辑单行文本,并且文本被其他字符代替。 此类的构造函数与单行文本框类似。 其它方法: char getPassword() char getEchoChar() void setEchoChar(char c),常用组件,文本框-JTextArea JTextArea 组件用于接受来自用户的多行文本 它可实现可滚动界面 JTextArea 组件可使用下列构造函数创建: JTextArea() JTextArea(int rows, int cols),常用组件,复选框-JCheckBox 复选框用于为用户提供一组选项 JCheckBox 类具有下列构造函数: JCheckBox()

8、 JCheckBox(Icon icon) JCheckBox(Icon icon, boolean selected) JCheckBox(String text) JCheckBox(String text, boolean selected) JCheckBox(String text, Icon icon) JCheckBox(String text, Icon icon, boolean selected),常用组件,单选按钮-JRadioButton 单选按钮允许用户从多个选项中选择其中一个 ButtonGroup 用于在 Swing 中创建组 JRadioButton 对象可使用

9、下列构造函数创建: JRadioButton() JRadioButton(Icon icon) JRadioButton(Icon, boolean selected) JRadioButton(String text) JRadioButton(String text, boolean selected) JRadioButton(String text, Icon icon) JRadioButton(String text, Icon icon, boolean selected),常用组件,列表框-JList public JList() : 使用空模型构造 JList public

10、 JList(ListModel dataModel) :构造一个列表,用它显示指定模型中的元素。 public JList (Object listData) :构造一个列表以显示指定数组listData的元素。 JList 不支持滚动。要启用滚动,可使用下列代码: JScrollPane myScrollPane=new JScrollPane(); myScrollPane.getViewport().setView(dataList);,常用组件,组合框-JComboBox 文本域和下拉列表的组合 在 Swing 中,组合框由 JComboBox 表示 构造函数如下: public J

11、ComboBox() : 此构造函数使用缺省数据模型创建 JComboBox public JComboBox(ComboBoxModel asModel) : 使用现有 ComboBoxModel 中的项目的组合框 public JComboBox (Object items) : 包含指定数组元素的组合框,常用组件,菜单 菜单显示项目列表,指明各种任务。 选择或单击某个选项时会打开另一个列表或子菜单。 Swing 菜单由菜单栏、菜单和菜单项构成。 菜单栏是所有菜单和菜单项的根 JMenuBar 是可通过 JFrame、JWindow 的根窗格添加至容器的组件。 由多个 JMenu 组成,每

12、个 JMenu 在 JMenubar 中都表示为字符串。 JMenu 在 JMenuBar 下以文本字符串形式显示,而在用户单击它时,则以弹出式菜单显示。 JMenuItem为JMenu 中的一个组件,以文本字符串形式显示,可以具有图标,外观可以修改,如字体、颜色、背景、边框等。 弹出式菜单JPopupMenu的定义和使用:,常用组件,对话框 1JOptionPane对话框 是模式对话框,它提供了很多现成的对话框样式,可以供用户直接使用。 2JFileChooser对话框 提供了标准的文件的打开、保存对话框。,布局管理器,4、布局管理器 Java中的布局类型包括以下几种: FlowLayout

13、(流式布局) BorderLayout (边界布局) GridLayout(网格布局) CardLayout (卡片布局) GridBagLayout(网格包布局),FlowLayout布局管理器,FlowLayout的构造函数有: FlowLayout( ):生成一个默认的流式布局 FlowLayout(int alignment):可以设定每一行组件的对齐方式 FlowLayout(int alignment,int horz,int vert):可以设定组件间的水平和垂直距离 Applet和面板的缺省布局, 组件从左上角开始按从左到右、从上到下的方式排列,BorderLayout布局管理

14、器,下面是BorderLayout所定义的构造函数: - BorderLayout( ):生成默认的边界布局 - BorderLayout(int horz,int vert): 可以设定组件间的水平和垂直距离 窗口、框架和对话框等的缺省布局 组件被置于容器的北、南、东、西或中间位置,GridLayout布局管理器,GridLayout的构造函数如下所示: - GridLayout():生成一个单列的网格布局 - GridLayout(int row,int col):生成一个设定行数和列数的网格布局 - GridLayout(int row,int col,int horz,int vert

15、):可以设置组件之间的水平和垂直间隔 用于将容器区域划分为一个矩形网格 组件按行和列排列,见后面计算器的布局例,swing布局管理器,1. BoxLayout布局管理器 按照从上到下(即Y轴)或者从左到右(即X轴)的顺序来依次排列组件。 2.ScrollPaneLayout布局管理器 是JScrollPane中的内置布局管理器,所以不需要单独创建,会自动设置。,手动布局,在某些情况下,用户不想使用布局管理器,需要自己设置组件的位置和大小,这时应取消容器的布局管理器,然后再进行设置,否则用户自定义设置将会被布局管理器覆盖。取消布局管理器的方法是: setLayout(null); 用户使用set

16、Location()、setSize()、setBounds()等方法为组件设置位置和大小。需要注意的是,这种方法会导致程序与系统相关,如不同的分辨率会产生不同的效果。,5、事件处理模型,Java 最新的事件处理方法是基于授权事件模型 当事件来源对象因用户的操作(鼠标或键盘),系统会自动触发此事件类对象E,并通知所授权的事件监听者A(若来源对象已向A注册),事件监听者A中有处理各种事件的方法(事件处理者1n)便会处理此事件E的各种状况 。,事件处理方法,实现事件监听器接口法: 首先给组件注册监听器,使用下列方法: addxxxListener(事件监听器对象); 确定了事件监听器的类型后,必须在程序中定义类来实现这些接口,重写接口中的所有方法。,事件适配器,使用实现事件监听器接口的方法处理事件时,必须重写监听器接口中的所有方法,尽管有些方法不会用到。 继承事件适配器类,只需要重写所需要的方法即可。,项目核心:只包括少数组件,import javax.swing.*; import java.awt.*; class P115 extends JFrame

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 办公文档 > 工作范文

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号