2018/11/11 面向对象与多线程综合实验-GUI设计 教师:段鹏飞.

Slides:



Advertisements
Similar presentations
Java 程序分类 Java Application :是完整程序,需要独立的解 释器解释运行;以 “.java” 为后缀的文件,以 main() 方法作为程序入口,由 java 编译器编译生 成字节码,由 Java 解释器加载执行字节码。 Java Applet 没有 main() 方法作为程序入口,是嵌在.
Advertisements

四川机电职业技术学院 http: // 6.1 主控界面设计、编程 信息工程系 向模军 Tel: QQ:
3.2 Java的类 Java 类库的概念 语言规则——程序的书写规范 Java语言 类库——已有的有特定功能的Java程序模块
JAVA程序设计 天津工程职业技术学院计算机工程系软件技术教研室.
图形界面设计 福州大学阳光学院 张海歆.
Java程序设计教程 第一讲 Java概述.
Java程序设计 常州信息职业技术学院(CCIT) 软件学院
四資二甲 第三週作業 物件導向程式設計.
Hello小程序的运行和编译 Java AppletJava小程序的构成 1、关键字
UI(用户界面)集训班 Illustrator 高级班.
第11章 Java多媒体技术.
第八讲 图形用户界面与事件处理 1、使用AWT(Abstract Window Toolkit)组件
4.1 概述 4.2 AWT 与 Swing组件 4.3 事件处理 4.4 容器与布局管理器 4.5 对话框 4.6 菜单
第 18 章 圖形使用者介面.
第三部分 Java语言编程应用篇 第6章 Java语言的 图形用户界面开发技术 (之二).
全国计算机等级考试 二级基础知识 第二章 程序设计基础.
项目5 系统GUI设计.
第三部分 Java语言编程应用篇 第6章 Java语言的 图形用户界面开发技术 (之一).
Java语言程序设计 马 皓
Ch02 視窗Swing套件 物件導向系統實務.
Java语言程序设计-图形用户界面设计(2)
GUI事件处理 主讲:赖国荣 QQ:
Java语言程序设计-JAVA图形与图像处理
第5章 面向对象程序设计 本章要点 5.1 面向对象程序设计概述 5.2 Java语言的面向对象程序设计 5.3 方法的使用和对象数组
问题 Jdbc连接数据库 下载数据库的驱动 Sql server 在微软的网站上可以下载 Sqlserver for jdbc driver
2018/11/15 面向对象与多线程综合实验-GUI设计 教师:段鹏飞.
Java语言程序设计 第六部分 Java图形用户界面.
JAVA 编 程 技 术 主编 贾振华 2010年1月.
第六章 窗口系统和用户界面管理系统 山东大学计算机学院.
第十一章   Swing II.
第八章 菜单设计 §8.1 Visual FoxPro 系统菜单 §8.2 为自己的程序添加菜单 §8.3 创建快捷菜单.
視窗程式設計 10. 組合方塊與對話盒 Chih Hung Wang Reference:
Java程序设计 第15章 创建用户界面.
記事本 物件導向系統實務.
JAVA语言程序设计 第十一章 图形用户界面
第九章 窗口、菜单和对话框 本章的任务: 介绍图形用户界面的高级组件。这些组件包括窗口、菜单和对话框等,它们可以构造出标准GUI应用程序。最后,简要介绍Java Swing的使用方法。
記事本 物件導向系統實務.
第8章 图形用户界面的设计与实现 本章介绍Java基本的图形编程知识,包括窗口的显示、文字和图像的显示、事件处理以及图形用户界面中常用的组件等内容。 本章要点 8.1 Java图形用户界面概述 8.2 标准组件 8.3 简单图形用户界面 8.4 Java事件处理 8.5 布局管理 8.6.
走进编程 程序的顺序结构(二).
Java程序设计 第12章 图形用户界面设计入门.
第五讲 四则运算计算器(一) 精品教程《C#程序设计与应用(第2版)清华大学出版社 谭恒松 主编
AWT Event Model.
Ch04 事件處理 物件導向系統實務.
第4章 Java图形用户界面设计.
CH04 視窗中元件排排坐 物件導向系統實務.
C/C++/Java 哪些值不是头等程序对象
Windows 7 的系统设置.
事件處理.
SOA – Experiment 2: Query Classification Web Service
第4章 Java图形用户界面设计.
Multithread 多執行緒 以GUI為例了解物件以及Event
JAVA 编 程 技 术 主编 贾振华 2010年1月.
C++语言程序设计 C++语言程序设计 第七章 类与对象 第十一组 C++语言程序设计.
C语言程序设计 主讲教师:陆幼利.
实验四、TinyOS执行机制实验 一、实验目的 1、了解tinyos执行机制,实现程序异步处理的方法。
组件 复选框(Checkbox)可以让用户进行多项选择。复选框有两种状态,分别为“开(on)”和“关(off)”。当用户点中复选框的时候,复选框的状态就会改变。 1、创建复选框 (1)声明复选框。 Checkbox mycheckbox =new Checkbox (); (2)添加复选框。将复选框组件放置到容器中。
iSIGHT 基本培训 使用 Excel的栅栏问题
Chapter 18 使用GRASP的对象设计示例.
C++语言程序设计 C++语言程序设计 第八章 继承 C++语言程序设计.
第十二章 JFC/Swing 概述  Swing组件  Swing应用程序结构  JComponent类.
辅导课程十五.
Delphi 7.0开发示例.
第6章 面向对象的高级特征 学习目标 本章要点 上机练习 习 题.
Python 环境搭建 基于Anaconda和VSCode.
第8章 创建与使用图块 将一个或多个单一的实体对象整合为一个对象,这个对象就是图块。图块中的各实体可以具有各自的图层、线性、颜色等特征。在应用时,图块作为一个独立的、完整的对象进行操作,可以根据需要按一定比例和角度将图块插入到需要的位置。 2019/6/30.
创建、启动和关闭Activity 本讲大纲: 1、创建Activity 2、配置Activity 3、启动和关闭Activity
使用Fragment 本讲大纲: 1、创建Fragment 2、在Activity中添加Fragment
10 图形用户界面.
事件处理 例: import java.applet.Applet; import java.awt.*;
Summary
Presentation transcript:

2018/11/11 面向对象与多线程综合实验-GUI设计 教师:段鹏飞

实验 4-实验目的 了解Java图形界面程序的基本结构 掌握Java布局管理和常用组件的使用 掌握Java事件处理机制

实验内容 编写程序,将前面课程所编写的档案管理系统改编为图形用户界面。 要求:程序界面选用合适的布局,综合使用菜单、按钮、文本框、密码框、下拉列表、文件对话框等组件,实现良好的人机接口。

界面构成 1、登陆界面:包含用户名、密码等输入,以及登陆按钮等时间操作。 2、管理员、录入员、浏览员等不同对象的主界面:在主界面中实现菜单操作,以及相应地按钮功能(注意界面的布局)。 3、在文件上传的过程中实现文件选择对话框(参考JFileChooser)

窗口(Window)有两个主要组件:框架和对话框 java.lang.Object 窗口(Window)有两个主要组件:框架和对话框 在Java应用程序中,一般独立应用程序主要使用框架 (Frame)做容器,在框架上通过放置面板(Panel) 来控制图形界面的布局。 如果应用到浏览器中,则主要使用面板的一个子类 Applet来做容器,它能嵌入浏览器运行。 Java中有两种主要容器:窗口和面板 窗口(Window)是可以自由移动的,不依赖其他容器 而存在的容器 面板(Panel)与窗口类似,但不能独立存在,必须包含 在另外一个容器里,如包含在Frame或Web中 抽象窗口工具集AWT 颜 色 类 字 体 类 组 件 类 布 局 类 复选 框组 类 图 像 类 事 件 类 菜单 组件 类 图 形 类 java.awt包中的主要类 以及组件类的继承关系 组件(component)是具有一定功能、能够产生事件的 部件的统称。 例如:窗口,以及窗口上的文本框、按钮、 复选框、列表框、菜单等都是组件 组件类是Object的子类,是一个抽象类,是所有组件 的超类,它为其他子类定义了许多共同的属性, 如:位置、大小、字体、颜色等。 标 签 类 按 钮 类 容 器 类 复选 框 类 滚动 条 类 选择 框 类 画 布 类 文本 组件 类 列表 框 类 容器(container)是一组特殊的组件,它能容纳其他组件 容器类是组件类的子类 由于容器是组件,所以容器之上还可以再放置其他容 器,这样就可以创建出复杂的界面 面板类 窗口类 java.applet.Applet 框架类 对话框类 文件对话框类 NCEPU

以及组件类的继承关系 Component Container Panel Frame java.lang.Object 第一节 抽象窗口工具集AWT Component 颜 色 类 字 体 类 组 件 类 布 局 类 复选 框组 类 图 像 类 事 件 类 菜单 组件 类 图 形 类 java.awt包中的主要类 以及组件类的继承关系 标 签 类 按 钮 类 容 器 类 复选 框 类 滚动 条 类 选择 框 类 画 布 类 列表 框 类 文本 组件 类 Container 面板类 窗口类 Panel Frame 所有的可以显示出来的图形的东西都是Component Java的图形用户界面的最基本组成部分是Component,Component类及其子类的对象,用来描述以图形化的方式显示在屏幕上并能与用户进行交互的GUI元素,如,一个按钮、标签等 一般的Component对象不能独立的显示出来,必须将其“放在”某一Container对象中才可以显示出来。 Container是Component子类,Container子类对象可以“容纳”别的Component对象 Container对象可使用方法add()向其中添加其他Component对象。 Container是Component的子类,因此Container对象也可以被当做Component对象添加到其他Container对象中。 有两种常用的Container: Window:其对象表示自由停泊的顶级窗口 Panel:其对象可作为容纳其他Component对象,但不能独立存在,必须被添加到其他Container中(如Window或Applet) java.applet.Applet 框架类 对话框类 文件对话框类

知识要点 - GUI体系结构(swing) Object Component JFrame Container Window Frame Dialog JDialog JText JComboBox JLabel JList JMenuBar JOptionPane JPanel JScrollBar AbstractButton JToggleButton JMenuItem JButton JCheckBox JRadioButton JComponent JMenu Applet JApplet

一般可按照下列流程进行 知识要点 - GUI设计流程 引入Java图形组件包 AWT、Swing 选择“外观和感觉” 设置窗体属性 设置组件布局 向窗体中添加组件 对组件进行事件处理 鼠标获得专利 – 40周年 微软win3.0(GUI) – 约20年

“交互”的实现 知识要点 – 实现GUI步骤示意 如何判断“按钮”变化 如何实现按下以后 的工作 窗体: Frame类对象 下拉菜单: Menu类对象 文本框: TextField类对象 “交互”的实现 如何判断“按钮”变化 如何实现按下以后 的工作 鼠标、键盘是人对计算机的输入(键盘、鼠标、按钮、菜单的等); 程序后台处理是机器的对用户输入的处理; 显示的变化是机器的反馈; 共同构成了“人-机”交互,习惯上称之为“交互事件”。 举例,word的右键弹出菜单、选中文本等。 “今天学习Java“人-机”交互的机制和实现”。 按钮: Button类对象 内容面板: Panel类对象

知识要点 - 菜单 菜单组件 不能将菜单组件直接添加到一般的容器中 不能使用布局管理器对它们进行布局 AWT提供的菜单机制是这样的:一个容器包含一个菜单条,一个菜单条中包含多个菜单,一个菜单中包含多个菜单或菜单项 和菜单相关的组件有四个:MenuBar, Menu, MenuItem, CheckboxMenuItem.

知识要点 - 布局技巧 容器的嵌套 一个包含了多个组件的容器本身可以作为一个组件加到另一个容器中去,容器中再添加容器,这样就形成了容器的嵌套。 多面板技术 将窗口分割成多个独立的面板,每个面板独立布局(即为每个面板分别设置不同的布局管理器),然后再使用另一种布局管理器来组织这些面板。

知识要点 - 事件处理 实现事件处理的步骤 创建事件监听器类 创建事件监听器对象 注册事件监听器

2.1 事件机制的几个概念 事件源 描述人机交互中事件的来源 (EventSource) 通常是Java图形包中组件 事 件 事件源产生的交互内容,如“按下鼠标” (ActionEvent) 在 java.awt.event包中定义的类 事件监听器 接收事件并进行处理,由程序员编写 (ActionListener) 对应处理所监听事件源产生的事件 监听器接口 编写“事件监听器”的“规定” – “抽象方法” 必须在监听器类中实现这些方法完成事件处理 监听器注册 将事件监听器对象绑定到事件源,进行监听

知识要点 - 事件处理 设计自己的窗体类 按钮 事件源 注册监听器 主类 监听器类 import java.awt.*; import java.awt.event.*; class ButtonListener implements ActionListener { public void actionPerformed ( ActionEvent e ) { System.out.println ( “我知道你按下按钮啦“ ); } 按钮 窗体 主类 监听器 监听器类 class myButtonFrame extends Frame { Button btn; myButtonFrame(String s) { //构造函数 super(s); this.setSize(200,120); /* 创建按钮*/ btn = new Button("点击"); this.add(btn); // 事件监听器创建和注册 ButtonListener bl = new ButtonListener(); btn.addActionListener(bl); } 设计自己的窗体类 按钮 事件源 注册监听器 public class ActionEventTest { // 主类 public static void main(String args[]){ myButtonFrame frm = new myButtonFrame("ActionEventTest"); frm.show(); // 显示窗体 } 主类

事件程序实现

知识要点 - 终端程序转化为GUI 1、借鉴改写计算器的思维,将原来的程序进行封装(之改写showmenu()) 2、借鉴MVC的思想,界面和控制进行分离。

知识要点 - 注意事项 1、设置边界时要使用swing(awt不支持setborder); 2、注意使用e. getSource()和e. getActionCommand()来区分不同的对象; 3、在事件中使用适配器可以减少实现的方法。

2018/11/11 谢谢