山东科技大学java培训第9章 GUI

合集下载

Java语言程序设计教程第九章

Java语言程序设计教程第九章

Java中的容器分为顶层容器、中间容器和特殊 容器三大类。其中,顶层容器是GUI的基础, 其它所有的组件都是直接或间接显示在顶层容 器中的。在Swing中有三种顶层容器,分别是 JFrame(框架窗口,即通常的窗口)、 JDialog(对话框)、JApplet(用于设计嵌入 在网页中的Java小程序)。 中间容器是可以 包含其它相应组件的容器,但是中间容器不能 单独存在,必须依附于顶层容器。Java常见的 中间容器有JPanel、JPanel、JScrollPane等 。还有一些特殊容器如JLayeredPane、 JRootPane 、JInternalFrame等。本书只列举 三个常用容器JFrame、JDialog和JPanel。
9.3 容器、组件和布局

在学习GUI的编程的时候,必须很好的掌握和理解容 器类(Container)和组件类(Component)。Component 类及其子类的对象用来描述以图形化的方式显示在屏 幕上并能够与用户进行交互的GUI元素。Container类 是用来组织界面上的组件或者单元。有两种常用的 Container(容器),一种是Window,Window对象表示 自由停靠的顶级窗口,另一个是Panel对象,可作为 容纳其他Component对象,但不能够独立存在,必须 被添加到其他Container中,比如说Window或者 Applet中。需要注意的是,Container是 ponent的子类,java.swing中的 JComponent类是java.awt中Container类的一个直接 子类,是java.awt中Component类的间接子类。Swing 中容器和组件的关系如图9.2所示。
1.JFrame Java中所提供的JFrame类的实例就是一个顶层容 器,是构造GUI的基础,其他的组件必须添加到顶层 容器中,以便和操作系统进行信息交互。JFrame的 常用方法见表9.1。

JAVA语言程序设计教程 第9章

JAVA语言程序设计教程 第9章
与AWT类似,SWT也是基于原生组件实现的。如果某平 台有对应的原生组件,SWT则调用该原生组件;如果此平台 没有对应的原生组件,SWT则创建模拟组件。AWT是可跨平 台移植的,但是不同平台的SWT实现是不同的。可以说SWT 综合了AWT和Swing的优点。
在跨平台能力方面,SWT不如Swing优秀。但SWT具有可 以作为本地应用程序实现的优点,性能较高一些,并允许利用 基于SWT的GUI来实现本地兼容性。如果只为一种平台开发系 统,可以优先选用SWT。现在有一些成功的SWT案例,例如 开源集成开发环境Eclipse就是用Java和SWT开发的。
【例9-1】 创建窗体并设置窗体标题以及其他属性,然后 显示窗体。
import Javax.swing.*; public class HelloSwing {
public static void main(String[] args) { JFrame win = new JFrame(“HelloSwing的标题”); win.setSize(250,100); //设置窗口大小 win.setLocation(250,250);//设置窗口位置
综合来讲,Swing 具有内嵌于Java技术的优点,是完全 可移植的,无可争议,它是一种很好的架构。本章后面的章 节将对Swiget Toolkit(SWT),最初是由IBM开发的一 套用于Java的图形用户界面系统,现在由Eclipes基金会负责维 护,与Swing是竞争关系。
第 9 章 图形用户界面设计
9.1 AWT、Swing和SWT 9.2 一个简单例子 9.3 顶层容器 9.4 JFrame窗体 9.5 菜单 9.6 布局管理 9.7 常用组件 9.8 常用对话框 9.9 在Swing组件中使用HTML 9.10 事件处理 9.11 界面外观 9.12 并发编程与线程安全

java课程第9章

java课程第9章

谢 谢!
计算机与信息工程分院
–Java的运行速度<<硬件的运行速度
• AWT必须适应三大主流平台:windows、 xwindow、Macintosh
Java程序设计
一、AWT与Swing
• 在1998年5月发布的JFC(Java Foundation Classes)包含了一个新的使用Java窗口开发包。 这个新的GUI组件叫做Swing • Swing不采取p2p技术,采用了软件构件模型 • Swing要求计算机性能比较好
Java程序设计
四、布局管理器
2、 FlowLayout(1)
(1) 静态成员变量 CENTER LEFT RIGHT (2) 构造方法 FlowLayout() FlowLayout(int align) (3) 常用方法 int getAlignment() int setAlignment(int align) int setHgap() int setVgap()
2、 FlowLayout(3)
• 每个Button显示的大小:刚好显示完 button上的内容 • 尽可能在一行内摆下更多的部件 • 摆放好的部件对中(左边到第一个部件=右 边部件到右边)
Java程序设计
四、布局管理器
3、 BorderLayout(1)
• BorderLayout布局管理器按照东、西、南、北、 中五个区域放置容器中的组件 • (1) 静态成员变量 • CENTER 将组件放置在容器中央 • EAST 将组件放置在容器右边 • NORTH 将组件放置在容器上边 • SOUTH 将组件放置在容器下边 • WEST 将组件放置在容器左边
Java程序设计
一、AWT与Swing

Java第九章PPT教学课件

Java第九章PPT教学课件
TextField text; public Exam5_19() {
super(“我的菜单窗口”); setSize(300, 200); } public void init() { MenuBar myB = new MenuBar(); setMenuBar(myB); Menu m1 = new Menu(“文件”); m1.add(new MenuItem(“打开”)); MenuItem m11 = new MenuItem(“保存”); m11.setEnabled(false); m1.add(m11); m1.addSeparator(); m1.add(“退出”); m1.addActionListener(this); myB.add(m1);
Menu m3 = new Menu(“帮助”); m3.add(“关于”); m3.addActionListener(this);
myB.setHelpMenu(m3);
text = new TextField();
add(“South”, text);
2020/1}2/10
6
使用菜单组件的例子
2020/12/10
2
//(c)通过Action对象新建“New”菜单项,并添加事件监听器。 newItem = (new ShowAction("New")); //(c)通过指定菜单项对象新建“Paste”菜单项。 pasteItem = new JMenuItem("Paste", 'P'); //(d)将菜单项加入到子菜单或菜单中,将子菜单加入到菜单中,将菜单加 入到菜单栏中。 (newItem); editMenu.add(pasteItem); viewMenu.add(optionMenu); menuBar.add(); menuBar.add(editMenu); menuBar.add(viewMenu);

JAVA学习第9章建立JavaGUI.ppt

JAVA学习第9章建立JavaGUI.ppt

ng.object
MenuBar MenuItem
Menu CheckboxMenuItem
Applet
Button Canvas Container Label List TextComponent
Panel Window ScrollPane
Dialog Frame
TextArea TextField

Window: 其对象表示自由停泊的顶级窗口 Panel: 其对象可作为容纳其它Component对象,但不能独立存在,必须被添加到其它 Containner中(如Window 或 Applet)
Page 8
框架
框架有以下特性:
它们是 Window 的子类 具有标题和重调大小的角 最初是看不见的,使用 setVisible(true) 可以显示框架 具有如缺省布局管理器一样的 BorderLayout 使用 setLayout() 方法更改缺省布局管理器

Frame的常用构造方法:

Frame() Frame(String s) 创建标题栏为字符串s的窗口。
窗口也是一个容器,可以向窗 口添加组件。需要注意的是, 窗口默认地被系统添加到显示 器屏幕上,因此,不允许将一 个窗口添加到另一个容器中。
setBounds(int x,int y,int width,int height) 设置窗体位置和大小,x,y是左上角坐标, widht和height是宽度和高度 setSize(int width,int height) 设置窗体的位置,x,y是左上角坐标 setLocation(int x,int y) 设置窗体的大小,widht和height分别是宽度和高度。 setBackground(Color c) 设置背景颜色,参数为Color对象。 setVisible(boolean b)设置是否可见。 setTitle(String name) String getTitle() setResizable(boolean b)设置是否可以调整大小。

Java程序设计电子教案第九章

Java程序设计电子教案第九章

上一页 下一页 返回
9.1图形处理 图形处理
// TestColor.Java import java.applet.Applet; import java.awt.Graphics; import java.awt.Font; import java.awt.Color; public class TestColor extends Applet { public void paint( Graphics g ) {
上一页 下一页 返回
9.1图形处理 图形处理
根据题目的要求, 根据题目的要求,我们使用一组随机数来指定直线两个端点 的坐标,并采用循环结构实现10次循环 次循环。 的坐标,并采用循环结构实现 次循环。drawLine方法 方法 中的4个整型参数代表直线两个端点的坐标 个整型参数代表直线两个端点的坐标。 中的 个整型参数代表直线两个端点的坐标。random()是 是 Math类中的一个方法,该方法返回一个 类中的一个方法, 类中的一个方法 该方法返回一个double值,值域为 值 类是java.1ang包的一部分 (0.0,1.0)。Math类是 . , . 。 类是 . 包的一部分 java.1ang可由编译器自动引入,所以我们不必把 可由编译器自动引入, . 可由编译器自动引入 所以我们不必把Math 类引入到程序中。直接调用random方法得到返回值太小, 方法得到返回值太小, 类引入到程序中。直接调用 方法得到返回值太小 在实际应用中往往乘以一个整数因子, 在实际应用中往往乘以一个整数因子,并强制类型转换 为 一个合适的整数。 一个合适的整数。如(int)(Math.random()x100)的 . 的 实际取值范围为[0, 实际取值范围为 ,100]。在图形方式下要想准确定位, 。在图形方式下要想准确定位, 必须了解屏幕坐标系的构成。 必须了解屏幕坐标系的构成。Java定义一个窗口工作区的左 定义一个窗口工作区的左 上角为坐标原点(o, ,以像素点为单位, 上角为坐标原点 ,o),以像素点为单位,顺序向右和向下 延伸。图形的大小如超过窗口,则超出部分不会显示出来。 延伸。图形的大小如超过窗口,则超出部分不会显示出来。

Java语言基础课件GUI

Java语言基础课件GUI
繁琐. 3. 适配器简化了这些操作, 我们定义监听器时只要继承适配器, 然后重写需要的
方法即可.
适配器原理
1. 适配器就是一个类, 实现了监听器接口, 所有抽象方法都重写了, 但是方法全 是空的.
2. 适配器类需要定义成抽象的,因为创建该类对象,调用空方法是没有意义的 3. 目的就是为了简化程序员的操作, 定义监听器时继承适配器, 只重写需要的方
法就可以了
事件处理讲解 ➢ 事件处理的三要素:事件、事件源、监听器 ➢ 事件: 用户的一个操作 ➢ 事件源: 被操作的组件 ➢ 监听器: 一个自定义类的对象, 实现了监听器接口, 包含事件处理方法,把监听器添加在事件
源上, 当事件发生的时候虚拟机就会自动调用监听器中的事件处理方法
规则的矩阵
➢ CardLayout(卡片布局管理器)
选项卡
➢ GridBagLayout(网格包布局管理器)
非规则的矩阵
窗体监听
鼠标监听
键盘监听
适配器设计模式(掌握)
什么是适配器
1. 在使用监听器的时候, 需要定义一个类事件监听器接口. 2. 通常接口中有多个方法, 而程序中不一定所有的都用到, 但又必须重写, 这很
GUI-图形化编程
大纲
1. GUI是什么 2. 创建一个窗口并显示 3. 布局管理器 4. 窗体监听 5. 鼠标监听 6. 键盘监听和键盘事件 7. 动作监听 8. 适配器设计模式 9. 事件处理
GUI是什么
➢ Graphical User Interface(图形用户接口) ➢ java提供了一个 java.awt 包,用于创建用户界面和绘制图形图像的所有类。 ➢ 这个PPT的内容作为了解,做j2ee方向的一般很少会用这个东西

Java程序设计课件:GUI组件

Java程序设计课件:GUI组件
构造一个具有指定文本的文本区。 TextArea(String text)
构造一个具有指定的行数和列数和指定文本的文本区。 TextArea(String text, int rows, int columns)
构造一个具有指定文本,指定行数、列数和滚动条的文本区。 TextArea(String text, int rows, int columns, int scrollbars)
getSelectedValues()
返回所有选择值的Object类型的数组,并根 据列表中的索引顺序按升序排序。
isSelectedIndex(int index)
判定指定index的项是否被选中,如果选择了 指定的索引,则返回 true;否则返回 false。
isSelectionEmpty()
表示字体的显示形式,它可以取下面几个常量之一。
Font.BOLD:表示字体加粗。 Font.ITALIC:表示字体倾斜。 Font.PLAIN:表示正常字体,也是Font字体的默认值。
参数size表示字体的大小,其单位为磅,要求为正整数, size值越大表示字越大。
2023/12/28
6/35
Java程序设计
GUI组件
本章主要内容
常用控制组件 菜单 工具栏 对话框 图形图像的显示 小结
2023/12/28
2/30
常用控制组件
容器组件可以设置界面的布局。控制组件为用户 提供的控制程序执行过程的功能。
常用控制组件包括:
标签:显示输出信息 按钮:启动程序功能 文本框:获取用户输入的简单信息 文本区:获取用户输入的复杂信息 列表框:显示多个选项供用户选择 组合框:包含多个选项,但仅显示一个选项供用户选

Java09(GUI编程)

Java09(GUI编程)
为Panel和Applet的缺省布局方式,一 般用在Panel中。容器中的各个控件从 左到右排列;各个控件依其标签自动调 整大小;对齐方式: 有(LEFT、RIGHT、 CENTER); 用方法setAlignment(int) 来设定。 可设置控件间隔:setHgap(int)。
BorderLayout
委托模型的优缺点
事件处理和产生事件的对象分离,更加灵活, 符合OOP的一个设计准则,分离。 事件处理和时间对象可以有多对多的关系, 可以重用事件处理对象。 程序结构复杂。 由1.0模型向1.1模型转换比较复杂。
Q&A
本章结束 谢谢大家
确定布局管理器
缺省的布局管理器
Window 、Frame、Dialog —— BorderLayout Panel 、Applet —— FlowLayout:
选择布局管理器的方法
建立布局管理器类的对象 利用容器的 setLayout 为容器指定布局(即指定一个布局管理 器的对象)
例:将myFrame布局设定为FlowLayout类型 myFrame.setLayout(new FlowLayout());
JAVA GUI编程简介
通过图形用户界面GUI (graphics user interface ),用户和程序之间可以方便地进行交 互。在Java语言中提供了专门的类库来生成各种标 准图形界面元素和各种处理图形界面的各种事件, 以实现图形用户界面的设计
目前在JAVA中实现图形用户界面主要有两种技术: AWT和Swing
允许用户选择自己喜欢的界面风格提供了多种与用户交互的手段为用户提供高质量的2d图形图像和文本的api支持对象的拖放swing组件全部是由纯java编写的功能强大如按钮和标签可以显示图像或图片组件不一定是长方形swing使用的包

第9章 GUI_教学设计

第9章 GUI_教学设计

传智播客《Java基础入门》
教学设计
课程名称:Java基础入门
授课年级:2014年级
授课学期:2014学年第一学期
教师姓名:某某老师
2014年02月09日
Window
Window类是不依赖其它容器而独立存在的容器,它有两个子类,分别是类和Dialog类。

如下图所示:
Frame示例Dialog示例
事件处理机制专门用于响应用户的操作,在学习如何使用
制之前,首先介绍几个比较重要的概念,具体如下所示:
Event):封装了GUI组件上发生的特定事件。

事件源(组件):事件发生的场所,通常就是产生事件的组件。

✧BorderLayout
GridBagLayout
GridBagLayout(网格包布局管理器)与GridLayout
Frame类最大的区别在于,JFrame
JDialog
菜单组件
JMenuBar:JMenuBar表示一个水平的菜单栏,它用来管理菜单,不参与同用户的交互式操作。

博学谷——让IT教学更简单,让IT学习更有效。

JavaGUI设计入门教程

JavaGUI设计入门教程

JavaGUI设计入门教程第一章:概述GUI设计的重要性和基本概念GUI(Graphical User Interface)是图形用户界面的缩写,是用户与计算机进行交互的一种方式。

GUI设计是软件开发中重要的一环,具有丰富的用户交互体验,提高了软件的易用性和用户满意度。

本章将介绍GUI设计的基本概念,包括窗口、组件、布局管理器等。

第二章:AWT和Swing库的介绍在Java中,AWT(Abstract Window Toolkit)和Swing是两个主要的GUI库。

AWT是Java最早的GUI库,提供了一系列平台相关的图形组件,而Swing则是在AWT的基础上开发的更强大的GUI库。

本章将介绍AWT和Swing库的基本概念、特点和使用方法。

第三章:使用AWT库进行GUI设计AWT库提供了一系列的组件和容器,可以用于创建窗口、按钮、标签等。

本章将详细介绍AWT库的常用组件和容器的使用方法,并通过示例代码展示如何创建简单的GUI界面。

第四章:使用Swing库进行GUI设计Swing库相较于AWT更加强大和灵活,提供了更多的组件和容器,并支持丰富的外观和主题。

本章将介绍Swing库的基本概念和使用方法,并通过示例代码展示如何使用Swing创建复杂的GUI界面。

第五章:布局管理器的使用布局管理器是用来控制组件在容器中的排列和布局的工具。

Java提供了多种布局管理器,如流式布局、边界布局、网格布局等。

本章将介绍各种常用的布局管理器的特点和使用方法,并通过示例代码展示如何实现不同风格的GUI布局。

第六章:事件处理机制GUI设计中经常需要处理用户的输入事件,如点击按钮、拖拽等。

Java提供了强大的事件处理机制,开发者可以通过注册监听器来处理特定的事件。

本章将介绍事件处理的基本原理和方法,并通过示例代码展示如何实现用户交互的响应。

第七章:用户界面实践案例分析通过以上章节的学习,读者已经具备了一定的GUI设计和实现的知识和技巧。

9GUI

9GUI

AWT结构图
Component ……
Button TextArea TextField
Container
Label
Choice
Window Frame Dialog
Panel Applet
Componet & Container
Java 的 图 形 用 户 界 面 的 最 基 本 组 成 部 分 是 Component, Component类及其子类的对象用 来描述以图形化的方式显示在屏幕上并能与用 户进行交互的GUI元素,例如,一个按钮,一个 标签等。 一般的Component对象不能独立地显示出来, 必须将它放在某一个Container对象中才可以显 示出来。

Componet & Container


Container是Component子类,Container子类对象可以 容纳别的Component对象。 Container 对 象 可使用 add(…) 方法向其中添加其他的 Component对象。 Container是Component的子类,因此Cotainer对象也 可以被当作Component对象添加到其他Container对象 中。 有两种常用的Container: Window:其对象表示可以自由停泊的顶级窗口。 Panel:其对象可容纳其它Component对象,但不能 独 立 存 在 , 必 须 被 添 加 到 其 它 Container 中 ( 如 Window或Applet)。
窗口事件(WindowEvent)


Window事件所对应的事件类为WindowEvent,所对应 的事件监听接口为WindowListener。 WindowListener定义的方法有: public void windowOpened(WindowEvent e) public void windowClosing(WindowEvent e) public void windowClosed(WindowEvent e) public void windowIconified(WindowEvent e) public void windowDeiconfied(WindowEvent e) public void windowActivated(WindowEvent e) publห้องสมุดไป่ตู้c void windowDeactived(WindowEvent e) 与WindowListener对应的适配器为WindowAdapter 例:TestWindowClose.java

Java就业培训教程第九章 GUI

Java就业培训教程第九章 GUI

Java就业培训教程第九章GUI9.1 常用AWT组件在上一章开始的第一个程序中,我们就用到了按钮(Button),这是最简单的组件之一了,在AWT里还有专门多用于GUI设计的组件,我们现在就来了解更多的GUI组件。

如图9.1所示描述了AWT中的组件及类层次关系图。

图9.19.1.1 Component类Java的图形用户界面的最差不多组成部分是组件,组件是一个能够以图形化的方式显示在屏幕上并能与用户进行交互的对象,例如一个按钮,一个标签等。

抽象类Component是所有Java GUI组件的共同父类。

Compone nt类规定了所有GUI组件的差不多特性,该类中定义的方法实现了作为一个GUI组件所应具备的差不多功能。

Java程序要显示的GUI组件必须是抽象类Component或MenuComponent的子类。

9.1.2 CanvasCanvas代表屏幕上的一块空白的矩形区域,程序能够在那个部件表面绘图,也能够捕捉用户的操作,产生相应的事件,Canvas能够讲是具有最差不多的和最简单的GUI功能的部件。

当我们要设计一种自己定制的具有G UI功能的部件类,我们的那个类就能够继承Canvas,如此,我们的部件类就差不多完成了GUI的差不多功能,我们只需要在那个基础上增加子类部件所专有的外观和功能的有关代码就行了,我们要想绘制子类部件的外观,我们必须覆盖Canvas的paint方法。

我们现在设计一个计时器部件,鼠标在部件上按下时,计时器开始计时,并在部件上显示计时时刻,鼠标开释时,计时器停止计时。

下面是那个计时器的程序代码,其中涉及到的技巧和知识点,都在前面有过讲解,那个地点就不作详细讲明了。

程序清单:TestStopWatch.javaimport java.awt.*;import java.awt.event.*;import java.util.*;import java.text.SimpleDateFormat;class StopWatch extends Canvas implements Runnable{private long startTime = 0;private long endTime = 0;private boolean bStart = false;public StopWatch(){enableEvents(AWTEvent.MOUSE_EVENT_MASK);setSize(80,30);}protected void processMouseEvent(MouseEvent e){if(e.getID() == MouseEvent.MOUSE_PRESSED){bStart = true;startTime = endTime = System.currentTimeMillis();repaint();new Thread(this).start();}else if(e.getID() == MouseEvent.MOUSE_RELEASED){bStart = false;repaint();}super.processMouseEvent(e);}public void paint(Graphics g){SimpleDateFormat sdf= new SimpleDateFormat("HH:mm:ss");Date elapsedTime =null;try{elapsedTime= sdf.parse("00:00:00");}catch(Exception e){}elapsedTime.setTime(endTime - startTime + elapsedTime.getTime());String display = sdf.format(elapsedTime);g.drawRect(0,0,78,28);g.fill3DRect(2,2,75,25,true);g.setColor(Color.RED);g.drawString(display,10,20);}public void run(){while(bStart){try{Thread.sleep(500);}catch(Exception e){e.printStackTrace();}endTime = System.currentTimeMillis();repaint();}}}public class TestStopWatch{public static void main(String [] args){Frame f =new Frame("StopWatch");f.add(new StopWatch());f.setSize(200,200);f.setVisible(true);f.addWindowListener(new WindowAdapter(){public void windowClosing(WindowEvent e){System.exit(0);}});}}编译并运行那个程序,你一定要用鼠标按住计时器部件几秒钟,你就能看到我们期望的成效了,如图9.2所示。

Java 实用程序设计(西电版)第9章 Java GUI程序设计

Java 实用程序设计(西电版)第9章 Java GUI程序设计
16
第 9 章 Java GUI 程序设计
1. Swing和AWT AWT的全称是抽象窗口工具集(Abstract Window Toolkit), 其中包含用户界面相关的组件。它的类库包括创建Java图形 界面程序的所有工具。用户可以利用AWT在容器中创建标签、 按钮、复选框、文本框等用户界面元素。
第 9 章 Java GUI 程序设计
第 9 章 Java GUI 程序设计
9.1 Java 2D图形处理 9.2 Swing基础知识 9.3 容器结构及常用容器 9.4 布局管理 9.5 事件的捕获与事件模型 9.6 Swing组件概览 9.7 SWT
1
第 9 章 Java GUI 程序设计
9.1 Java 2D图形处理
9
第 9 章 Java GUI 程序设计 10
第 9 章 Java GUI 程序设计 11
第 9 章 Java GUI 程序设计
图9-1 例9-1运行结果
12
第 9 章 Java GUI 程序设计
5. Java2D基本图形 java.awt.geom包中定义了一些基本几何图形,包括 直线(Line2D)、矩形(Rectangle2D)、圆角矩形 (RoundRectangle2D)、椭圆(Ellipse2D)等,也可以描绘 文字。典型的基本图形的绘制如例9-2所示。
33
第 9 章 Java GUI 程序设计 34
第 9 章 Java GUI 程序设计 35
第 9 章 Java GUI 程序设计
图9-5 例9-5运行结果
36
第 9 章 Java GUI 程序设计
2) JScrollPane面板 在设置界面时,可能会出现一个比较小的容器需要显示 一个较大部分内容的情况,这时就可以使用JScrollPane面板。 JScrollPane面板是带有滚动条的容器,可以很好地解决上面 的问题,但是JScrollPane面板只能放置一个组件,所以如果 想要放置多个组件,可以先将组件放置在JPanel容器上,再 将JPanel容器放置到JScrollPane面板上。

Java课程设计GUI

Java课程设计GUI

Java课程设计GUI一、教学目标本课程的目标是让学生掌握Java语言的GUI(图形用户界面)编程。

通过本课程的学习,学生将能够理解GUI编程的基本概念,熟悉Java Swing和JavaFX两种常用的GUI库,掌握GUI应用程序的设计和实现方法。

知识目标:使学生掌握GUI编程的基本概念,理解事件驱动编程机制,熟悉Java Swing和JavaFX两种常用的GUI库。

技能目标:使学生能够运用Java语言设计和实现简单的GUI应用程序,具备解决实际问题的能力。

情感态度价值观目标:培养学生对编程的兴趣,增强其自主学习和创新意识,使其认识到计算机技术在现代社会中的重要性。

二、教学内容本课程的教学内容主要包括GUI编程的基本概念、Java Swing和JavaFX两种常用的GUI库。

具体安排如下:1.GUI编程的基本概念:包括事件驱动编程机制、组件、布局管理器等。

2.Java Swing:包括Swing组件、事件处理、高级Swing技巧等。

3.JavaFX:包括FXML、JavaFX组件、场景图、媒体和动画等。

三、教学方法为了提高教学效果,本课程将采用多种教学方法,包括讲授法、讨论法、案例分析法和实验法等。

1.讲授法:用于讲解GUI编程的基本概念、原理和方法。

2.讨论法:用于引导学生探讨和解决实际问题,培养其解决问题的能力。

3.案例分析法:通过分析典型案例,使学生更好地理解和掌握GUI编程技巧。

4.实验法:让学生动手实践,培养其编程能力和实际操作技能。

四、教学资源为了支持教学内容和教学方法的实施,我们将选择和准备以下教学资源:1.教材:《Java GUI编程实战》2.参考书:《JavaFX编程指南》、《Swing编程指南》3.多媒体资料:教学PPT、视频教程、在线文档等。

4.实验设备:计算机、网络环境、编程软件等。

五、教学评估本课程的评估方式包括平时表现、作业、考试等。

评估方式应客观、公正,能够全面反映学生的学习成果。

《Java程序设计教程》教学课件 项目九

《Java程序设计教程》教学课件 项目九

// 声明菜单条
Menu file;
// 声明主菜单项
MenuItem nw;
// 声明各子菜单项
MenuItem op; TextArea tx;
MenuItem cl; // 声明文本区对象
MenuItem sf;
MenuItem ex;
public TextEditor(String title) { super(title); CloseHandler handler = new CloseHandler(); this.addWindowListener(handler); setSize(400, 400); setLocationRelativeTo(null); menuinit(); tx = new TextArea(); this.add(tx); setVisible(true);
Java程序设计教程
案例9-2 创立简易文本编辑器
【案例描述】 首先创立一个窗体容器,然后为其添加了一个主菜单项和一个文本区,
利用这些菜单项和文本区可分别完成文件内容编辑,新建、翻开和保存文 件的功能。
【技术要点】 〔1〕菜单的结构为:MenuBar〔菜单条〕→ Menu〔主菜单项〕→
MenuItem〔子菜单项〕,因此,我们可以通过调用 MenuObject.add(MenuItemObject)方法创立主菜单,通过调用 MenuBarObject.add(MenuObject)方法将主菜单添加到菜单条中。
// 菜单构建与处理 // 定义主菜单栏 // 定义主菜单项file // 定义各子菜单项
Java程序设计教程
file.add(nw);
// 将各子菜单项参加到主菜单项中
file.add(op);
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
信息科学与工程学院 软件工程系
MenuItem
数据库应用软件
Java语言编程 Java语言编程
Swing
不基于对等体的GUI工具箱,是JFC的一部分; 工具箱, 的一部分; 不基于对等体的 工具箱 的一部分 优点:丰富的用户界面元素;不同平台上观感一致; 优点:丰富的用户界面元素;不同平台上观感一致; 未完全取代AWT,仍采用AWT的底层事件处理机制 ,仍采用 未完全取代 的底层事件处理机制 显示速度比AWT要慢 显示速度比 要慢 Swing是Java图形界面的发展方向 是 图形界面的发展方向
Java语言编程 Java语言编程
实例: 实例:SL275 10-12 FrameWithPanel
信息科学与工程学院 软件工程系
数据库应用软件
Java语言编程 Java语言编程
9.3 布局管理
作用:管理容器内的组件的布局, 作用:管理容器内的组件的布局,实现动态布局 每种容器都有一种默认的布局管理器
信息科学与工程学院 软件工程系
数据库应用软件
Java语言编程 Java语言编程
9.3.3 GridLayout
特点:多个行与列的布局管理(电子表格样式) 特点:多个行与列的布局管理(电子表格样式)
– 调整区域大小时,组件相对位置不变,大小改变 调整区域大小时,组件相对位置不变, – 所有组件单元的宽和高是相同的 – 添加组件的方式
信息科学与工程学院 软件工程系
数据库应用软件
import javax.swing.*; public class SimpleFrameTest { public static void main(String[] args) { SimpleFrame frame = new SimpleFrame();
信息科学与工程学院 软件工程系
数据库应用软件
public class FrameWithPanel { private Frame f; public FrameWithPanel(String title) { f = new Frame(title); } public void launchFrame() { f.setSize(200, 200); f.setBackground(Color.blue); f.setLayout(null); Panel pan = new Panel(); pan.setSize(100, 100); pan.setBackground(Color.yellow); f.add(pan); f.setVisible(true); } }
Java语言编程 Java语言编程
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);// 3 frame.show(); } } class SimpleFrame extends JFrame { public SimpleFrame() { setSize(DEFAULT_WIDTH, DEFAULT_HEIGHT); } public static final int DEFAULT_WIDTH = 300; public static final int DEFAULT_HEIGHT = 200; }
– FlowLayout( ) – FlowLayout(int align):LEFT CENTER RIGHT : – FlowLayout(int aligh,int hgap,vgap)
实例: 实例:SL275 10-21 FlowExample
信息科学与工程学院 软件工程系
数据库应用软件
实例: 实例:SL275 10-11 FrameExample
信息科学与工程学院 软件工程系
数据库应用软件
Java语言编程 Java语言编程
JFrame
class JFrame extends Frame
修饰部件,如按钮、标题栏、 修饰部件,如按钮、标题栏、图标等通过用户系统的 窗口提供,非Swing绘制 窗口提供, 绘制 Swing绘制了框架内部所有的一切 绘制了框架内部所有的一切 实例: 实例:SimpleFrame
两种主要类型: 两种主要类型:Window和Panel 和 向容器中添加GUI组件:add方法 组件: 向容器中添加 组件 方法
信息科学与工程学院 软件工程系
数据库应用软件
Java语言编程 Java语言编程
9.2.1 Window
Window:独立于其他容器的本地独立窗口 :
Frame(JFrame) ( )
信息科学与工程学院 软件工程系
数据库应用软件
Java语言编程 Java语言编程
信息科学与工程学院 软件工程系
数据库应用软件
Java语言编程 Java语言编程
9.3.1 FlowLayout
特点:在一行上水平排列组件,直到该行没有足够的 特点:在一行上水平排列组件, 空间则另起一行。 空间则另起一行。 默认排列方式:居中, 默认排列方式:居中,通过构造函数参数修改 组件之间的距离: 组件之间的距离:构造函数设置
思考:ButtonHandler除了用于该按钮的事件响应外, 思考:ButtonHandler除了用于该按钮的事件响应外,还有其 除了用于该按钮的事件响应外 他作用么?若引用TestButton中的相应属性该怎么办? TestButton中的相应属性该怎么办 他作用么?若引用TestButton中的相应属性该怎么办? 实例2: 实例 :SL275 11-18 TestInner 实例3: 实例 :SL275 11-19 TestAnonymous
应用(小的 局部应用) 应用(小的Grid局部应用) 局部应用 实例: 实例:SL275 10-29 GridExample
信息科学与工程学院 软件工程系
数据库应用软件
Java语言编程 Java语言编程
9.4 GUI事件处理 事件处理
事件
– 一个对象,用于描述发生的情况 一个对象, – 事件的类型
数据库应用软件
Java语言编程 Java语言编程
第9章 GUI
信息科学与工程学院 软件工程系
数据库应用软件
Java语言编程 Java语言编程
主要内容
1. 2. 3. 4. 5.
AWT和Swing 和 容器 布局管理 GUI事件处理 事件处理 AWT组件简介 组件简介
信息科学与工程学院 软件工程系
数据库应用软件
事件源: 事件源:事件发生的源头 事件处理器:处理事件的一个方法 事件处理器:
– 功能:接收一个事件对象,解释该对象并处理该事件 功能:接收一个事件对象, – 实现了专门的监听器接口的对象 实现了专门的监听器接口的对象 监听器接口
信息科学与工程学院 软件工程系
数据库应用软件
Java语言编程 Java语言编程
信息科学与工程学院 软件工程系
数据库应用软件
Java语言编程 Java语言编程
两个核心类
– Component:可以显示的元素 : – Container:容纳其他元素的元素 : Component java.awt包 包 类结构: 类结构:SL275 10-5 MenuComponent MenuBar Button TextArea List … Container Window Frame Dialog Panel Applet
Java语言编程 Java语言编程
9.3.2 BorderLayout
(J)Frame、(J)Dialog的默认布局 、 的默认布局 5个不同的区域 个不同的区域 实例:SL275 10-24 BorderExample 实例: 特点: 特点:每个区域只能添加一个组件
– 如果添加多个组件,则只有最后添加的是可见的 如果添加多个组件, – 如何在一个区域添加一个以上的组件?? 如何在一个区域添加一个以上的组件?? 通过嵌套面板和对BorderLayout和FlowLayout的混合使用, 通过嵌套面板和对BorderLayout和FlowLayout的混合使用,可以精 BorderLayout 的混合使用 确定位多个组件(实例: 10- ComplexLayoutExample) 确定位多个组件(实例:SL275 10-30 ComplexLayoutExample)
Java语言编程 Java语言编程
9.1 Java图形化界面 图形化ห้องสมุดไป่ตู้面
AWT(Abstract Window Toolkit): Java 1.0
将图形元素的创建和行为委托给目标平台 对等体 程序能运行在各种平台, 程序能运行在各种平台,外观同目标平台一致 缺陷:一次编写, 缺陷:一次编写,处处调试
信息科学与工程学院 软件工程系
数据库应用软件
Java语言编程 Java语言编程
信息科学与工程学院 软件工程系
数据库应用软件
Java语言编程 Java语言编程
9.2 容器
容器: 容器:可以容纳其他的图形界面组件
容器有一定的范围,有一定的位置, 容器有一定的范围,有一定的位置,通常有背景 容器中的其它元素将随容器的打开而显示, 容器中的其它元素将随容器的打开而显示,随容器的关 闭而隐藏 容器可以按一定的规则来安排他包含的各种元素 容器可以被包含在其他容器中
信息科学与工程学院 软件工程系
数据库应用软件
Java语言编程 Java语言编程
9.2.2 面板
提供容纳其他组件的空间,每个Panel都可以有自己 提供容纳其他组件的空间,每个Panel都可以有自己 Panel 的布局管理器 Panel:代表一个矩形区域,可以放入其他组件 Panel:代表一个矩形区域, 不能独立存在,必须包含在另一个Container或Web浏 不能独立存在,必须包含在另一个Container或Web浏 Container 览器中
相关文档
最新文档