Java基础案例教程第8章 GUI(图形用户界面)
《Java面向对象程序设计》课件-第8章 图形用户界面
![《Java面向对象程序设计》课件-第8章 图形用户界面](https://img.taocdn.com/s3/m/fafe03c95901020206409c2d.png)
10
认识Swing常用组件
常用 组件
11
GUI编程的一般步骤
创建 窗口
创建 组件
安排 组件
处理 事件
显示 窗口
12
8.2.1 窗口JFrame
JFrame 类的常用方法
序号
方法原型
主要功能
1 JFrame()
默认构造方法,创建窗口
2 JFrame(String title)
✓ 缺点:依赖操作系统来绘制组件并实现功能,不同操作系统下显示不完 全一致。
✓ Sun公司不推荐使用
Swing
✓ Swing 是在AWT的基础上构建的一套新的Java图形界面库。 ✓ 优点:不再依赖操作系统的本地代码,不同操作系统下的显示完全一致。 ✓ Sun推荐使用
5
8.1.2 Swing结构及组件的分类
add(Component
comp,
将指定组件添加到此容器的给定位置上
void doLayout()
使此容器布置其组件
float getAlignmentX()
返回沿 x 轴的对齐方式
float getAlignmentY()
返回沿 y 轴的对齐方式
Component getComponent(int n)
《Java面向对象程序设计》
第8章 图形用户界面
1
内容导览
2
主要内容
8.1 Swing图形库 8.2 Swing常见组件 8.3 布局管理 8.4 事件处理 8.5 Swing其它组件 8.6 实例
3
8.1.1 AWT 和 Swing 8.1.2 Swing结构及组件的分类 8.1.3 ponent常用方法 8.1.4 tainer常用方法
第8章GUI 图形用户界面
![第8章GUI 图形用户界面](https://img.taocdn.com/s3/m/08c21ef8910ef12d2af9e742.png)
第8章图形用户界面设计学习目标Java API提供了A WT和Swing两套组件来实现图形用户界面。
它们包含了用来设计图形用户界面的各种基本控制组件,容器组件和布局管理组件,并采用事件委托的处理模式。
本节将介绍A WT包和Swing包各自的特点,并学习Java组件的概念。
本章要点☑什么是GUI☑布局管理机制☑AWT组件☑Swing组件8.1 容器和组件容器和组件都是图形用户界面中的重要概念,本节将从容器与组件入手来学习图形用户界面的相关知识。
8.1.1 什么是用户图形界面图形用户界面(Graphics User Interface,GUI)提供了所见即所得的功能,方便了用户的操作,成为软件设计的通用标准。
Java语言提供了图形用户界面所需要的基本组件,这些组件全部包含在java.awt包中,利用这些组件可以设计出功能强大的GUI软件。
Java1.0的出现带来了A WT(Abstract Windowing Toolkit),中文译为抽象窗口工具包。
设计目标是希望构建一个通用的GUI,使得利用它编写的程序能够运行在所有的平台上。
在Java1.2中,Sun公司推出了新的用户界面库:Swing。
相对A WT来说,Swing功能更强大、使用更方便,它的出现使得Java的图形用户界面上了一个台阶。
但是,Swing并没有代替A WT,在Java1.1中,AWT事件处理模型有了根本改变。
Swing使用的仍然是Java1.1的事件处理模型。
8.1.1 容器和组件的概念容器是一种特殊的组件,它可以包含其他组件,即可以把组件放在容器中。
反之,如果一个组件不是组件容器,则其中不能包含其他组件。
容器也是一种组件,所以一个组件容器可以放在另一个组件容器中。
¤Java程序设计教程︻电脑基础·实例·上机系列教程︼A WT容器分为两类:外部容器和内部容器。
其中,外部容器一般会独立存在,例如Frame类;而内部容器则会嵌套在外部容器内部使用,例如Panel类。
第八章 Java语言的图形用户界面
![第八章 Java语言的图形用户界面](https://img.taocdn.com/s3/m/08e76865783e0912a2162aca.png)
例:使用FlowLayout布局方式在框架窗 口中添加5个按钮
import java.awt.*; import java.awt.event.*; public class TestFlowLayout extends Frame { public TestFlowLayout() { super("TestFlowLayout"); this.addWindowListener(new WindowAdapter(){ public void windowClosing(WindowEvent e){ dispose(); System.exit(0); } }); }
例:小程序设置了BorderLayout布局,三个标签 放“东”、“西”、“北”,一个多行文本框放 “中”,一个面板放“南”。面板上添一按钮。
import java.applet.*; import java.awt.*; public class TestBorderLayout extends Applet { Label L1,L2,L3; TextArea ta; Button btn; Panel p = new Panel(); public void init() {
▼创建面板 Panel( )---创建一个默认布局方式的面板。 Panel(LayoutManager layout)---创建一个指定布局 方式的面板。 ▼添加面板 通过 add( )方法添加面板到容器中。 例子见例UserPanel.java和例TestMyFrame.java
例:小程序UserPanel.java中自定义面板类的子 类Mypanel1,其上以默认布局方式放置6个按钮。
▼创建 BorderLayout 布局对象 public BorderLayout( ); public BorderLayout(int horizontalgap,int verticalgap ); 其中horizontalgap 表示每个组件左右间 隔的距离; verticalgap 表示每个组件上下间隔 的距离; ▼设置布局 使用 setLayout( ) 方法设置容器中新的 布局。 setLayout(new BorderLayout(5,5));
如何使用Java编写一个简单的形用户界面程序
![如何使用Java编写一个简单的形用户界面程序](https://img.taocdn.com/s3/m/fa6460eab8f3f90f76c66137ee06eff9aef849f2.png)
如何使用Java编写一个简单的形用户界面程序如何使用Java编写一个简单的图形用户界面程序Java是一种跨平台的编程语言,相比于其他编程语言,它具有良好的可移植性和强大的功能性。
在本文中,我们将探讨如何使用Java编写一个简单的图形用户界面(GUI)程序。
GUI程序是一种通过图形和图标来展示信息并接受用户输入的应用程序。
在Java中,我们可以使用Swing库来构建GUI程序。
下面是一个基本的步骤指导,帮助您编写一个简单的Java GUI程序。
步骤一:导入必要的库首先,您需要导入Swing库,以便您可以使用其中的类和方法来构建GUI界面。
您可以通过添加以下代码导入Swing库:```import javax.swing.*;```步骤二:创建界面主体接下来,您需要创建GUI界面的主体。
通常,一个GUI程序由一个顶级容器(如JFrame)和其中包含的其他组件组成。
以下是一个简单的示例代码,展示如何创建一个JFrame对象:```JFrame frame = new JFrame("简单GUI程序");```步骤三:设置界面大小和关闭操作在创建主体后,您需要设置界面的大小和默认的关闭操作行为。
以下代码演示如何设置界面的大小并定义当用户关闭界面时的操作:```frame.setSize(300, 200); // 设置界面的宽度和高度frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); // 设置默认关闭操作为退出程序```步骤四:向界面添加组件在创建和设置主体后,您可以向界面中添加各种组件,如按钮、标签、文本框等。
以按钮为例,以下代码演示如何创建一个按钮并将其添加到界面中:```JButton button = new JButton("点击我");frame.getContentPane().add(button); // 将按钮添加到界面的内容面板中```步骤五:显示界面完成了界面的创建和组件的添加后,最后一步是显示界面。
Java实验8 GUI程序设计
![Java实验8 GUI程序设计](https://img.taocdn.com/s3/m/1e923b8c51e79b89680226fc.png)
实验8GUI程序设计一、实验目的:1、学习使用框架、面板、和简单用户界面UI组件。
2、学习使用布局管理器。
3、理解和学习Windows事件驱动程序。
4、熟悉Java事件委托模式:事件的注册、监听和处理。
二、实验任务:1、使用Java SDK创建一个Windows图形界面应用程序,上面包括一个按钮。
2、实现一个能做算术运算的用户界面。
界面包括标签和文本域Number1、Number2、Result。
Result文本域用于显示Number1和Number2的算术运算的结果。
3.选作:实现一个简易计算器,实现基本的运算功能。
三、实验步骤:2.参考代码import javafx.application.Application;import javafx.geometry.Pos;import javafx.geometry.HPos;import javafx.scene.Scene;import javafx.scene.control.Button;import bel;import javafx.scene.control.TextField;import yout.GridPane;import javafx.stage.Stage;public class TestFX extends Application {private TextField n1 = new TextField();private TextField n2 = new TextField();private TextField r1 = new TextField();private TextField r2 = new TextField();private Button Add = new Button("和");private Button Subtract = new Button("差");public void start(Stage primaryStage) {GridPane gridPane = new GridPane(); gridPane.setHgap(5);gridPane.setVgap(5);gridPane.add(new Label("数值1:"), 0, 0); gridPane.add(n1, 1, 0);gridPane.add(new Label("数值2:"), 0, 1); gridPane.add(n2, 1, 1);gridPane.add(new Label("和:"), 0,2); gridPane.add(r1, 1, 2);gridPane.add(new Label("差:"), 0, 3); gridPane.add(r2, 1, 3);gridPane.add(Add, 1, 4);gridPane.add(Subtract, 0, 4);//设置属性gridPane.setAlignment(Pos.CENTER);n1.setAlignment(Pos.BOTTOM_RIGHT);n2.setAlignment(Pos.BOTTOM_RIGHT);r1.setAlignment(Pos.BOTTOM_RIGHT);r2.setAlignment(Pos.BOTTOM_RIGHT);r1.setEditable(false);r2.setEditable(false);// 处理事件Add.setOnAction(e -> qiuhe());// 处理事件Subtract.setOnAction(e -> qiucha());// 创建场景放在舞台中Scene scene = new Scene(gridPane, 400, 250); primaryStage.setTitle("数值计算"); primaryStage.setScene(scene); //设置场景到舞台中primaryStage.show(); // 显示舞台}private void qiuhe() {// 获取数值double a =Double.parseDouble(n1.getText());double b = Double.parseDouble(n2.getText());double r = (a+b);r1.setText(String.format("%.2f",r));}private void qiucha() {// 获取数值double a =Double.parseDouble(n1.getText());double b = Double.parseDouble(n2.getText());double r = (a-b);r2.setText(String.format("%.2f",r));}public static void main(String[] args) {launch(args);}}四、本次实验难点:由于同学们过去学过的程序设计方法都是简单的基于命令流的控制台应用程序,所以建立Windows事件驱动模型的应用程序的概念是本次实验的难点,希望同学们仔细体会事件驱动模型的概念。
Java图形用户界面(GUI)编程Swing和AWT库的使用
![Java图形用户界面(GUI)编程Swing和AWT库的使用](https://img.taocdn.com/s3/m/939792eb85254b35eefdc8d376eeaeaad1f31685.png)
Java图形用户界面(GUI)编程Swing和AWT库的使用在编程领域,图形用户界面(Graphical User Interface,简称GUI)是一种通过图形、图像和图标等可视化元素与用户进行交互的界面形式。
Java作为一种跨平台的编程语言,提供了多种库和框架来实现GUI编程的需求。
其中,Swing和AWT是两个常用的Java GUI库,它们提供了丰富的组件和功能来创建用户友好的界面。
本文将重点介绍Java Swing和AWT库的使用,帮助读者了解和掌握这两个库的基本用法。
一、Swing库的使用Swing库是Java提供的一个基于AWT库的GUI工具包,它提供了丰富的组件和功能来创建交互式的图形界面。
下面将介绍几个常用的Swing组件及其使用方法。
1. JFrame窗口JFrame是Swing中最基本的容器,它代表了一个窗口。
我们可以使用JFrame类创建一个窗口,并在其中添加其他的组件。
以下是一个示例代码:```javaimport javax.swing.*;public class MyFrame extends JFrame {public MyFrame() {setTitle("My Frame");setSize(300, 200);setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); setVisible(true);}public static void main(String[] args) {SwingUtilities.invokeLater(new Runnable() {public void run() {new MyFrame();}});}```在这个例子中,我们创建了一个名为"My Frame"的窗口,并设置了窗口的大小为300x200像素。
通过调用`setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE)`方法,我们将在用户关闭窗口时退出程序。
Java基础案例教程第8章 GUI(图形用户界面)
![Java基础案例教程第8章 GUI(图形用户界面)](https://img.taocdn.com/s3/m/1bfc21dc8bd63186bcebbc57.png)
8.1 AWT概述
2.Panel Panel也是一个容器,但是它不能单独存在,只能存在其他容器(Window或其 子类)中,一个Panel对象代表了一个长方形的区域,在这个区域中可以容纳 其他组件。在程序中通常会使用Panel来实现一些特殊的布局。
案例代码
了解了AWT组件的相关类后,为了使读者对GUI有一个更直观的认识, 接下来通过一个案例来创建一个简单的图形界面,请查看教材文件8-1。
了对应的Java类,这些类都位于java.awt包中,接下来通过一个图例来描述这些
类的继承关系,如图所示。
从图的继承关系可以看出,在AWT中组件分为两大类,这两类的基类分别是 Component和MenuComponent。其中,MenuComponent是所有与菜单相关组 件的父类,Component则是除菜单外其他AWT组件的父类,它表示一个能以图 形化方式显示出来,并可与用户交互的对象。
8.2 布局管理器
GridBagLayout
GridBagLayout(网格包布局管理器)是最灵活、最复杂的布局管理器。与
GridLayout布局管理器类似,不同的是,它允许网格中的组件大小各不相同,
而且允许一个组件跨越一个或者多个网格。 使用GridBagLayout布局管理器的步骤如下:
(1)创建GridbagLayout布局管理器,并使容器采用该布局管理器
(2)创建GridBagContraints对象(布局约束条件),并设置该对象的相关属性
8.2 布局管理器
(3)调用GridBagLayout对象的setConstraints()方法建立GridBagConstraints对象和受控 组件之间的关联
第八章 GUI(图形用户界面)
java课件 文字与图形GUI设计ppt
![java课件 文字与图形GUI设计ppt](https://img.taocdn.com/s3/m/a826914a793e0912a21614791711cc7931b7786c.png)
第8章 文字与图形GUI设计
(1) 创建某控制组件类的对象,指定其大小等属性。 (2) 使用某种布局策略,将该控制组件对象加入到某个容器 中的指定位置处。 (3) 将该组件对象注册给所能产生的事件对应的事件监听程 序,重载事件处理方法,实现利用该组件对象与用户交互的功 能。
第8章 文字与图形GUI设计 (1) init()方法:当Applet程序启动时自动调用init()方法。 init()方法仅用来做初始化操作。用户程序可以重载父类的init() 方法,通过init()方法初始化图像文件、声音文件、字体或者其 他一些对象等。
(2) start()方法:Applet运行init()方法之后将自动调用start() 方法,start()方法体现了小应用程序要完成的功能。我们可以重 载父类的start() 方法,在这个方法体内实现我们程序的功能。
第8章 文字与图形GUI设计
Object Font FontMetrics Color GrБайду номын сангаасphics Polygon Component
图8.2 java.awt包中的文字图形类(是由Object类派生的)
第8章 文字与图形GUI设计
8.1.4 Applet的执行程序
限于我们目前的知识,在讲述本章的内容时我们以Applet 应用程序为所有示例程序的容器,且通过引用或重载Applet类 的某些成员方法来实现文字及图形的绘制。为此,有必要先介 绍Applet应用程序的执行过程及其所引用的方法。每个Applet应 用程序都是Applet类的子类,在实际运行中,浏览器在下载字 节码的同时,会自动创建一个用户Applet子类的对象,并在适 当事件发生时自动调用该对象的几个主要方法。下面说明这些 方法的引用过程。
java培训笔记(详细)版含作业练习-图形界面详解
![java培训笔记(详细)版含作业练习-图形界面详解](https://img.taocdn.com/s3/m/bbd3cce2f8c75fbfc77db2d9.png)
四. 创建GUI 步骤三:在容器中加入组件
五. 创建GUI 步骤四:创建事件处理器
六. FlowLayout流式布局管理器
最简单的布局管理器,按照组件的添加次序将它们从左到右地放置在容器中。当到达容器边界时,组件将放置在下一行中。
FlowLayout允许以左对齐、居中对齐(默认方式)或右对齐的方式排列组件。特性:
. 不限制它所管理的组件的大小, 而是允许它们有自己的最佳大小。
. 当容器被缩放时,组件的位置可能会变化,但组件的大小不改变。
FlowLayout的构造方法如下:
java.awt包中提供了一个抽象类Component,它是所有除了菜单类组件之外的AWT组件的父类。Container类表示容器,继承
了Component类。容器用来存放别的组件, 有两种类型的容器:Window和Panel。
1. Window和它的子类Frame
Insets getInsets() :返回容器的边框尺寸的大小
Validate():使容器内修改过的组件生效
三. 创建GUI 步骤二:布局管理器
组实例,通过它来自动进行组件的
南北区域的组件保持最佳高度,宽度被水平拉伸至和所在区域一样宽;
位于中区域的组件的宽度和高度都被拉伸至和所在区域一样大小。
. 垂直拉伸,东、西和中区域也拉伸;
水平拉伸,南、北和中区域也拉伸;
. 中区域没有组件,也会分配空间显示容器的背景颜色;
f.setBackground(Color.BLUE);
f.setVisible(true);
}
}
Index:组件存放的位置
constraints:通常是布局管理器的对象
Component getComponent()
第八章图形用户界面(Swing)解析
![第八章图形用户界面(Swing)解析](https://img.taocdn.com/s3/m/397f18c051e79b8968022667.png)
java.awt.event
事件处理
java.awt.font
关于字型的类
java.awt.geom
提供定义及操作2D几何对象所需的Java 2D类
java.awt.im
输入方法结构类
java.awt.im.spi
提供界面供开发输入方法,可用于任何执行阶段环境
java.awt.image
图像处理类
java.awt.image.renderable 制造rendering - independent图像所需的类
8.2.1 基本用户界面简介
Swing基本组件都是JComponent类的子类,这些组件可独立 存在于Applet和Application中,提供了小巧灵活的交互功能。 JComponent类包含了一些方法来设置组件的属性,如:改变背 景颜色、定义显示文本的字体等。JComponent的常用方法如下:
void setLocation (Point p)
使用屏幕坐标;否则使用该容器的坐标
Point getLocation ( )
获得组件的左上角位置。
Point getLocationOnScreen( )
获得组件左上角的位置。该值使用屏幕坐标
void setSize (int width,int height)或 重新设置组件的大小
第八章 图形用户界面
8.1 Java的图形用户界面简介 8.2 基本用户界面 8.3 组件布局管理器 8.4 事件处理 8.5 高级图形用户界面
8.1 Java的图形用户界面简介
• 图形用户界面(GUI)是一种方便的人机界面,它 通过图形的方式,借助菜单、按钮等图形界面组件 和鼠标操作,在用户和计算机之间进行交互。构成 GUI的基本要素是组件,组件分为基本的控制组件 和容器。
毕向东Java基础[08-GUI]
![毕向东Java基础[08-GUI]](https://img.taocdn.com/s3/m/038011d833d4b14e85246816.png)
• • •
Command line User Interface (命令行用户接口) 就是常见的Dos命令行操作。 需要记忆一些常用的命令,操作不直观。
举例: • 比如:创建文件夹,或者删除文件夹等 Java为GUI提供的对象都存在java.awt和javax.swing两个包中
北京传智播客教育
—高级软件人才实作培训专家!
Java 预热班讲义
讲师:毕向东
北京传智播客教育
—高级软件人才实作培训专家! GUI(图形用户界面)
GUI • Graphical User Interface(图形用户接口)。 • 用图形的方式,来显示计算机操作的界面,这样更方便更直 观。 CLI
北京传智播客教育
—高级软件人才实作培训专家! 建立一个简单的窗体
Container常用子类:Window Panel(面板, 不能单独存在。) Window常用子类:Frame Dialog 简单的窗体创建过程:
• • • • •
Frame f = new Frame(“my window”); f.setLayout(new FlowLayout()); f.setSize(500,400);//设置窗体大小 f.setLocation(300,200);//设置窗体出现在屏幕的位置 f.setVisible(true);
北京传智播客教育
—高级软件人才实作培训专家! 例程
通过按钮关闭窗体。 在窗体中通过按钮创建按钮。 熟悉键盘事件与鼠标事件
北京传智播客教育
—高级软件人才实作培训专家! 演示示例
转到
在文本框中输入目录,点击“转到”按钮,将该目录中的 文件与文件夹名称列在下面的文本区域中。
《Java程序设计》课件_javaCP8GUI程序设计基础
![《Java程序设计》课件_javaCP8GUI程序设计基础](https://img.taocdn.com/s3/m/292e7a4b182e453610661ed9ad51f01dc2815723.png)
李飞——东北大学秦皇岛分校计算中心
16/33 2024/12/24
卡式布局
卡式布局对应CardLayout类,设置了卡式布 局的容器可以容纳多个组件,但在同一时刻 只能显示其中的一个组件。
李飞——东北大学秦皇岛分校计算中心
17/33 2024/12/24
使用卡式布局的方法和步骤如下
4. 容器。
容器是用来组织其他组件的组件。一般来说,一个应用程序的图形用 界面首先对应一个容器,如一个窗口、一个对话框亦或是一个面板。
李飞——东北大学秦皇岛分校计算中心
2024/12/24
3/33
图形界面的基本概念
窗口
窗口是在图形界面的操作系统中执行应用程序时打开的一个矩形区域。
菜单
是GUI界面中为用户提供的在程序进行中出现在显示屏上的选项列表。 它的每个选项对应一个应用程序功能。用户可以通过点选这些选项来 命令程序执行相应的程序完成对应的功能。
Object constraints)
将组件添加到卡片布局的内部 名称表。constraints指组件的 引用名称。
first(Container parent)
翻转到容器的第一张卡片。
next(Container parent)
翻转到容器的下一张卡片。
previous(Container parent)
7/33
8.2 布局管理
我们在图形用户界面程序设计中一方面要考虑程 序的功能,同时还要考虑GUI的美观,这就需要 在设计界面时考虑界面中各种组件在容器中的位 置和相互关系。在这方面,JDK为程序员提供了 布局管理器类,用于解决组件的位置和布局的问 题。Java设置组件布局的方法是通过为容器设 置布局管理器来实现的。
Java程序设计GUI 图形用户界面PPT 课件,Java学习和备课必备资料
![Java程序设计GUI 图形用户界面PPT 课件,Java学习和备课必备资料](https://img.taocdn.com/s3/m/a92d2317b8f67c1cfbd6b8c0.png)
7
9.1 Swing 简介
9.1.1 窗体组件 JFrame 9.1.2 对话框组件 JDialog 9.1.3 对话框组件 JOptionPane 9.1.4 中间容器 JPanel 与 JscrollPane 9.1.5 标签组件 JLabel 9.1.6 文本组件 JTextField 与JTextArea
5
✓Swing包在图形界面设计上比AWT更丰富,更美观。Swing 拥有4倍于AWT的用户界面组件。 ✓是AWT包基础上的扩展,在很多情况下在AWT包的部件前 加上字母J即为Swing组件的名称,如:JFrame、JApplet、 JButton等。 ✓Swing组件都是AWT的Container类的直接子类或间接子类 。
17
9.1.3 对话框组件 JOptionPane
使用上面介绍的 JDialog 可以制作消息提示对话框、确定取消对话框等常用的对话框,但相 对来说要花费一些心思才能做出来,而 JOptionPane 组件直接提供了创建上述几种常用的对 话框的方法,大大方便了编程。 1.showMessageDialog()的静态方法弹出消息对话框,显示一条消息并等待用户确定。常用 的重载方法如下。
4、设置窗体的位置。setLocationRelativeTo(Component c):设置 窗体的相对位置。如果参数为 null,则窗体在屏幕中居中对齐。
5、如果希望在关闭窗体后程序可以随之停止,需要调用方法 setDefaultClose Operation()并传入参数 JFrame.EXIT_ON_CLOSE, 这句代码设置了关闭窗体后会停止程序的运行。 此外还有其他 3 个参数,简述如下。
口");。 2)带参的构造方法:用一个字符串作为参数,此字符串将成为窗体的标题。
Java应用开发与实践第8章GUI事件处理机制
![Java应用开发与实践第8章GUI事件处理机制](https://img.taocdn.com/s3/m/af23e54cdf80d4d8d15abe23482fb4daa58d1d90.png)
... ... // 事件处理器代码 } }); 其它代码... ... }
8.5 实训8 GUI事件处理基础练习
任务1:利用单选框对窗口颜色进行改变
要求:使用3个单选框对窗口的颜色及窗口里的文字进 行改变,需要实现ActionListener接口,对于单选框控件 ,还需要用到ButtonGroup类。
外部事件
产生并传递事件
接收事件对象事件,
对象事件
激活事件处理器
事件对象
图形界面程序事件源
注册监听
监听器对象 (含事件处理器)
8.2 事件处理与事件监听
1. 事件 事件是用户在图形用户界面上的一个操作(通常使用各
种输入设备比如:鼠标、键盘等来完成)。 当一个事件发生时,该事件用一个事件对象来表示,事
MouseListener MouseMotionList ener
itemStateChang ed() mouseClicked()
mousePressed()
mouseReleased()Βιβλιοθήκη 8.2 事件处理与事件监听
8.2.3 事件适配器
接收鼠标事件的抽象适配器类MouseAdapter、接收窗口 事件的抽象适配器类WindowAdapter、接收键盘事件的 抽象适配器类KeyAdapter、用于接收组件事件的抽象适 配器类ComponentAdapter等。
8.2 事件处理与事件监听
3. 事件处理器(事件处理方法) 事件处理器是一个接收事件对象并进行相应处理的方法。 事件处理器包含在一个类中,这个类的对象负责检查事件 是否发生,若发生就激活事件处理器进行处理。因此,把 事件处理器所在的这个类,叫做事件监听器类。
GUI用户图形界面
![GUI用户图形界面](https://img.taocdn.com/s3/m/8be8b75e54270722192e453610661ed9ac515567.png)
幻灯片 7/15
Java 编程语言
容器
Java.awt 包包含称为 Container 的类。 Container 是 Component 类的抽象子类。 Container 有两个子类:
Panel Window
版本 1.0
第 30 单元
幻灯片 8/15
Java 编程语言
容器(续)
Window 是自由的浮动窗口。 Panel 是必须存在于其他容器内的容器,如:Window。 下图显示了包含面板的窗口。
版本 1.0
第 30 单元
幻灯片 12/15
Java 编程语言
框架
现在让我们讨论框架。
版本 1.0
第 30 单元
幻灯片 13/15
Java 编程语言
框架(续)
Frame 是 Window 的子类。 Frame 有一个标题和可伸缩的角。 Frame 最初是不可见的。
您可以使用 setVisible(true) 展现 Frame。 Frame 默认布局管理器是 BorderLayout。
f.setSize(300,300);
设置 Frame 的大小
f.setVisible(true);
使 Frame 可见
}
public static void main(String args[])
{
FrameExample fr=new FrameExample();
}
}
初始化 Frame 对象
版本 1.0
版本 1.0
第 30 单元
幻灯片 14/15
Java 编程语言
框架(续)
创建 Frame 的一个示例:
import java.awt.*;
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
8.1 AWT概述
Component类通常被称为组件,根据Component的不同作用,可将其分为基本 组件类和容器类。基本组件类是诸如按钮、文本框之类的图形界面元素,而容 器类则是通过Component的子类Container实例化的对象。Container类表示容器, 它是一种特殊的组件,可以用来容纳其他组件。Container容器又分为两种类型, 分别是Window和Panel,接下来对两种类型进行详细讲解。 1.Window Window类是不依赖其他容器而独立存在的容器,它有两个子类,分别是Frame 类和Dialog类。Frame类用于创建一个具有标题栏的框架窗口,作为程序的主界 面,Dialog类用于创建一个对话框,实现与用户的信息交互,如图所示。
常用事件分类
☞点击查看本小节知识架构
AWT绘图
Swing
☞点击查看本小节知识架构
水果超市管理系统
知识架构
返回目录
8.2 布局管理器
FlowLayout BorderLayout
8.2.1 8.2.2 8.2.3 8.2.4 8.2.5 8.2.6
GridLayout
GridBagLayout CardLayout 不使用布局管理器
8.2 布局管理器
案例代码
接下来通过一个添加按钮的案例来学习一下FlowLayout布局管理 器的用法,请查看教材文件8-2。
8.2 布局管理器
8.2 布局管理器
8.1小节提到过,组件不能单独存在,必须放置于容器当中,而组件在容器中 的位置和尺寸是由布局管理器来决定的。在java.awt包中提供了五种布局管理 器,分别是FlowLayout(流式布局管理器)、BorderLayout(边界布局管理器)、 GridLayout(网格布局管理器)、GridBagLayout(网格包布局管理器)和 CardLayout(卡片布局管理器)。每个容器在创建时都会使用一种默认的布局 管理器,在程序中可以通过调用容器对象的setLayout()方法设置布局管理器, 通过布局管理器来自动进行组件的布局管理。例如把一个Frame窗体的布局管 理器设置为FlowLayout,代码如下所示:
知识架构
返回目录
8.6 Swing
Jframe JDialog 中间容器 文本组件
8.6.1 8.6.2 8.6.3
8.6.4
8.6.5 8.6.6 8.6.7 8.6.8
按钮组件
JComboBox 菜单组件 JTable
GUI(图形用户界面)
GUI全称是Graphical User Interface,即图形用户界面。顾名思义,就是应用程 序提供给用户操作的图形界面,包括窗口、菜单、按钮、工具栏和其他各种图 形界面元素。目前,图形用户界面已经成为一种趋势,几乎所有的程序设计语 言都提供了GUI设计功能。Java中针对GUI设计提供了丰富的类库,这些类分别 位于java.awt和javax.swing包中,简称为AWT和Swing。其中,AWT是SUN公司最 早推出的一套API,它需要利用本地操作系统所提供的图形库,属于重量级组
8.2 布局管理器
FlowLayout
流式布局管理器(FlowLayout)是最简单的布局管理器,在这种布局下,容器 会将组件按照添加顺序从左向右放置。当到达容器的边界时,会自动将组件放 到下一行的开始位置。这些组件可以左对齐、居中对齐(默认方式)或右对齐 的方式排列。FlowLayout对象有三个构造方法,如表所示。
了对应的Java类,这些类都位于java.awt包中,接下来通过一个图例来描述这些
类的继承关系,如图所示。
从图的继承关系可以看出,在AWT中组件分为两大类,这两类的基类分别是 Component和MenuComponent。其中,MenuComponent是所有与菜单相关组 件的父类,Component则是除菜单外其他AWT组件的父类,它表示一个能以图 形化方式显示出来,并可与用户交互的对象。
8.1 AWT概述
2.Panel Panel也是一个容器,但是它不能单独存在,只能存在其他容器(Window或其 子类)中,一个Panel对象代表了一个长方形的区域,在这个区域中可以容纳 其他组件。在程序中通常会使用Panel来实现一些特殊的布局。
案例代码
了解了AWT组件的相关类后,为了使读者对GUI有一个更直观的认识, 接下来通过一个案例来创建一个简单的图形界面,请查看教材文件8-1。
第八章 GUI(图形用户界面)
• •
布局管理器 常用事件
• •
AWT事件处理机制 常用Swing组件
学习目标
1
掌握布局管理器、AWT事件 处理机制以及常用事件
掌握
3
了解GUI开发的相 关原理和技巧
熟悉Swing组件局管理器
☞点击查看本小节知识架构
AWT事件处理
☞点击查看本小节知识架构
件,不跨平台,它的组件种类有限,可以提供基本的GUI设计工具,却无法实
现目前GUI设计所需的所有功能。随后,SUN公司对AWT进行改进,提供了 Swing组件,Swing组件由纯Java语言编写,属于轻量级组件,可跨平台,Swing
不仅实现了AWT中的所有功能,而且提供了更加丰富的组件和功能,足以满足
GUI设计的一切需求。Swing会用到AWT中的许多知识,掌握了AWT,学习Swing 就变成了一件很容易的事情,因此本章将从AWT开始学习图形用户界面。
8.1 AWT概述
AWT是用于创建图形用户界面的一个工具包,它提供了一系列用于实现图形界 面的组件,如窗口、按钮、文本框、对话框等。在JDK中针对每个组件都提供
表中,列出了FlowLayout的三个构造方法,其中,参数align决定组件在每行中
相对于容器边界的对齐方式,可以使用该类中提供的常量作为参数传递给构造
方法,其中FlowLayout.LEFT用于表示左对齐、FlowLayout.RIGHT用于表示右对齐、 FlowLayout.CENTER用于表示居中对齐。参数hgap和参数vgap分别设定组件之间 的水平和垂直间隙,可以填入一个任意数值。