第6章_Java图形用户界面
Java图形用户界面:Swing和JavaFX的简单介绍

Java图形用户界面:Swing和JavaFX的简单介绍在计算机科学领域中,图形用户界面(GUI)是指通过图形、图像和视觉元素来与计算机程序进行交互的界面。
Java作为一种广泛使用的编程语言,提供了多种选择来构建图形用户界面。
其中,Swing和JavaFX是最常用的两种选择。
本文将对这两种Java GUI工具进行简单介绍,并探讨它们的特点和用途。
一、SwingSwing是Java提供的一套GUI工具包,旨在提供一种跨平台的解决方案。
它是在AWT(抽象窗口工具包)的基础上开发的,为开发者提供了一系列可重用的GUI组件,如按钮、文本框、标签等。
Swing的特点之一是其轻量级性能,它不依赖于操作系统的原生GUI组件,而是完全由Java代码实现。
这使得Swing应用程序可以在不同操作系统上以相同的方式运行,而无需进行任何修改。
Swing提供了丰富的组件库,使得开发者可以轻松构建复杂的用户界面。
它还支持可定制的外观和感觉,开发者可以根据自己的需求选择不同的外观主题。
此外,Swing还提供了一些高级组件,如表格、树形结构和滚动面板,使得开发者可以创建更复杂和功能强大的界面。
然而,Swing也有一些缺点。
由于其完全由Java代码实现的特性,Swing应用程序可能在性能方面存在一些问题。
尤其是在处理大量数据或复杂图形时,Swing的性能可能会受到影响。
此外,Swing的外观和感觉可能与操作系统的原生界面存在一些差异,这可能会对用户体验造成一定的影响。
二、JavaFXJavaFX是Java平台上的另一种GUI工具,它提供了更现代化和富有表现力的用户界面。
与Swing不同,JavaFX使用了一种基于场景图的方式来构建界面。
它通过使用FXML(一种基于XML的用户界面描述语言)和CSS(层叠样式表)来分离界面的结构和样式,使得界面的定制变得更加灵活和简单。
JavaFX提供了许多内置的UI组件,如按钮、文本框、标签等,这些组件具有更丰富的视觉效果和交互特性。
Java图形用户界面设计

13
(3) 事件监听器(Listener) 事件处理机制中的核心部分,主要的功能大致可以分为 两部分:第一,监听组件,观察组件有没有发生某类事 件;第二,如果监听的组件发生了某类事件,则调用对 应的动作处理方法立刻处理这个事件。 在Java事件处理机制中,监听器处于主体地位。与事件 分类对应,监听器也相应的分成若干种类型,例如,鼠 标事件对应鼠标监听器,键盘事件对应键盘监听器,窗 口事件对应窗口监听器等。
25
5.3.2 AWT组件库常用组件举例 【问题1】 在窗口f中,有一个文本框tf,三个按钮btn_1、 btn_2、btn_3。当使用鼠标点击btn_1时,文本框显示 btn_1按钮被点击,当使用鼠标点击btn_2按钮时,文本框 显示btn_2按钮被点击,当使用鼠标点击btn_3按钮或者窗 口f的关闭按钮时,窗口关闭,程序退出。
(4) Choice Choice表示下拉选择框组件,选择框中的每一个选项称 为一个Item,Item的类型一般为String字符串。 (5) Label Label表示标签组件,主要作用在于创建提示性的文本。
23
(6) MenuBar、Menu和MenuItem MenuBar表示菜单条组件,该组件由Menu菜单构成,而 Menu菜单又可由Menu菜单和MenuItem菜单项构成。 (7) TextField TextField表示文本框组件,与文本域组件不同的是, 文本框中只能有一行文本。 (8) TextArea TextArea表示文本域组件,可以容纳多行文本。
30
(3) JRadioButton和ButtonGroup 在Swing中与Checkbox对应的是JCheckBox,实际使用时, 如果需要创建单选框组的话,经常使用的是 JRadioButton而非JCheckBox。如果将多个JRadioButton 组件放在一个ButtonGroup中时,这些JRadioButton组件 将不再具有复选功能,而是只具有单选功能,也即变成 单选框。 (4) JComboBox JcomboBox对应于AWT中的Choice,表示下拉选择框组件, 选择框中的每一个选项称为一个Item,Item的类型一般 为String字符串,也可以是指定的泛型类型。
解析JAVA程序设计第六章课后答案

第6章习题解答1.简述Java中设计图形用户界面程序的主要步骤。
对于设计图形用户界面程序而言,一般分为两个步骤:第一步,设计相应的用户界面,并根据需要对相关的组件进行布局;第二步,添加相关的事件处理,如鼠标、菜单、按钮和键盘等事件。
2.试说明容器与组件之间的关系。
组件(component)是图形用户界面中的各种部件(如标签、按钮、文本框等等),所有的组件类都继承自JComponent类。
容器(container)是用来放置其他组件的一种特殊部件,在java中容器用Container类描述。
3.阅读下面程序,说明其运行结果和功能。
//filename:MyFrame.javaimport java.awt.*;import java.awt.event.*;import javax.swing.*;public class MyFrame{public static void main(String agrs[]){JFrame f=new JFrame("简单窗体示例");f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);JLabel l=new JLabel("习题1");f.getContentPane().add(l,BorderLayout.CENTER);f.pack();f.setVisible(true);}}程序的运行结果如下:4.阅读下面程序,说明其运行结果和功能。
//filename:TestButton.javaimport java.awt.*;import javax.swing.*;public class TestButton extends JFrame{JButton b1,b2;TestButton(String s){super(s);b1=new JButton("按钮1");b2=new JButton("按钮2");setLayout(new FlowLayout());add(b1);add(b2);setSize(300,100);setVisible(true);}public static void main(String args[]){ TestButton test;test=new TestButton("测试按钮"); }}程序的运行结果如下:5.阅读下面程序,说明其运行结果和功能。
Java图形用户界面编程的技术研究

Java图形用户界面编程的技术研究第一章:引言在现代软件开发中,图形用户界面(Graphical User Interface,简称GUI)已经成为了不可或缺的一部分。
GUI使得用户可以通过直观的图形界面与软件进行交互,大大简化了用户操作的复杂性。
而Java作为一种面向对象的编程语言,其强大的GUI编程能力使得它成为了开发人员的首选。
本文将从技术研究的角度,深入探讨Java图形用户界面编程的相关技术。
第二章:Java GUI编程的基本概念1. AWT和Swing:Java提供了两套GUI编程库,分别是Abstract Window Toolkit(AWT)和Swing。
AWT是Java最早的GUI编程库,而Swing是在AWT基础上进行扩展和增强的。
本章将介绍AWT和Swing的基本概念和特点。
2. GUI组件:Java中的GUI界面是由一系列的GUI组件构成的,比如按钮、文本框、标签等。
本章将介绍常用的GUI组件,并讲解它们的使用方法和属性。
第三章:Java GUI编程的布局管理器布局管理器是Java GUI编程中非常重要的一个概念,它决定了GUI组件在界面上的摆放位置和大小。
Java提供了多种布局管理器,例如流式布局、边界布局、网格布局等。
本章将详细介绍各种布局管理器的特点和使用方法,并提供一些示例代码。
第四章:Java GUI编程的事件处理事件处理是Java GUI编程中的核心概念之一。
当用户与界面交互时,比如点击按钮、输入文本等,都会触发相应的事件。
Java提供了一套事件模型和事件监听器机制,开发人员可以通过注册事件监听器来响应用户的操作。
本章将介绍Java事件处理的基本原理,以及如何编写事件监听器。
第五章:Java GUI编程的高级特性1. 自定义组件:除了使用Java提供的标准GUI组件外,开发人员还可以自定义GUI组件。
本章将介绍如何编写自定义组件,并讲解一些常见的自定义组件的实现方法。
图形用户界面

Window Panel
ScrollPane
TextArea TextField
Dialog Frame
FileDialog
Component(组件)
Java的图形用户界面的最基本组成部分是组件 (Component),组件是一个可以以图形化的方式显 示在屏幕上并能与用户进行交互的对象,例如一个按 钮,一个文本框等。
10. f.add("East", new Button("East"));
11.
//第一个参数表示把按钮添加到容器的East区域
12. f.add("West", new Button("West"));
13.
//第一个参数表示把按钮添加到容器的West区域
14. f.add("Center", new Button("Center"));
LayoutManager (布局管理器)
为了使生成的图形用户界面具有良好的平台无关性, Java语言中,提供了布局管理器这个工具来管理组件 在容器中的布局,而不使用直接设置组件位置和大小 的方式。
每个容器都有一个布局管理器,当容器需要对某个组 件进行定位或判断其大小尺寸时,就会调用其对应的 布局管理器。
North区域缺少组件
West区域缺少组件
Center区域缺少组件
GridLayout
使容器中各个组件呈网格状布局
1. import java.awt.*;
2. public class ButtonGrid {
3. public static void main(String args[]) {
Java第06章--1(AWT与Swing)

• • 视图(view):它专门负责组件的绘制工作,主要涉及 paint()方法。MVC设计范式的最大优点是一个模型可以 有多个视图,每个视图是一个不同侧面但内容却是完整的。 • 一个模型的几个视图都是从不同侧面、用完整的内容来描 述同一个模型。当模型的控制器要修改其内容时,均会通 知这每个视图,它们都会自动地更新自己的视图显示。 • • 控制器(controller):专门负责管理和处理组件所接 收到的事件,这些事件可能来自用户的操作。如键盘输入、 鼠标点击和拖放等,也可能来自系统,如系统计时器发出 的事件。 • 视图和其控制器之间的通信不仅频繁且非常复杂,因此 JFC系统把两者封装成一个整体。
• • 模型(model):模型负责获取和管理组件的状态,用户若 需要询问组件的状态时,实际上是询问该组件的模型。 • 若要询问Swing型按钮组件(JButton 类的一个对象)的状 态,可调用JButton 类的父类javax.swing.AbstractButton所 提供的isSelected()方法,它定义为: – public boolean isSelected() { ... } – 该方法返回一个逻辑值,若为true则该按钮组件被压下,反 之返回false则按钮是松开状态。 • javax.swing包中的各种组件,对于描述该组件状态和内容的 模 型 都 是 用 以 Model 结 尾 的 接 口 实 现 , 例 如 , 对 于 按 钮 在 javax.swing包中有一个如下定义的接口: – public interface ButtonModel extends ItemSelectable { ... } • 每个JButton类的对象都保存着一个表示该按钮组件模型的对 象,调用其父类AbstractButton的方法就可以得到它,即: – JButton b = new JButton( "确定" );
第6章 图形用户界面(4)

1.3 菜单项的事件处理
当用户选定一个菜单项时,该菜单 项将发生ActionEvent事件。 关于ActionEvent事件的处理,重申三要点: (1) 安装侦听器 (implements ActionListener) (2) 通过addActionListener方法设置侦听 (3) 重写方法actionPerformed实现事件处理
7
1.2 菜单的创建和组织
8
1.2 菜单的创建和组织
JMenuItem的快捷键可以是Ctrl + 字符键或Alt + 字符键 JMenuItem Ctrl Alt 的组合,可用setAccelerator方法设置: 参数1指向快捷键字符。参数2指向控制字符,通常是 KeyEvent. CTRL_MASK(Ctrl),KeyEvent.ALT_MASK(Alt)。
第5章 图形用户界面
黄淮学院 计算机科学系 王春华 sunrisefe@
1
2
3
1.给GUI应用程序添加菜单
• 1.1 菜单概述 • 1.2 菜单的创建和组织 • 1.3 菜单项的事件处理
4
1.1 菜单概述
5
1.2 菜单的创建和组织
6
1.2 菜单的创建和组织
说明:因JMenu 是JMenuItem的 子类,故 add(JMenuItem menuItem)也可 加入JMenu菜单。
18
3.给GUI应用程序添加工具栏
整个流程与窗口 创建、往窗口中 添加组件过程是 一样的 工具栏用JToolBar类及其子类创建,它是一个容器 组件,在工具栏组件中可以容放其他组件。
19
工具栏设置布局:setLayout方法,默认FlowLayout 流式排放。 工具栏添加组件:add方法向。也可通过 “addSeparator()”方法在工具栏中加入分隔,以对 工具按钮按功能分组。
第6章图形用户界面

6.1 概述
₪ Java语言先后提供了两类图形用户界面技术: AWT和Swing。
2
1.AWT图形用户界面
图6.1 java.awt包中主要类及组件类的继承关系
3
ng.Object
2.Swing图形用户界面
ponent 组件类 java.awt.Container 容器类 java.awt.Frame 框架类 javax.swing.JFrame 框架类 java.awt.FileDialog 文件对话框类 java.awt.Dialog 对话框类 javax.swing.JComponent 组件类 javax.swing.JDialog 对话框类 java.awt.Window 窗口类
₪ 组件(Component)是图形用户界面的基本组 成元素,凡是能够以图形化方式显示在屏幕上, 并能够与用户进行交互的对象均为组件,如菜单、 按钮、标签、文本框、滚动条等。
₪ 组件分类
■ ponent ■ java.awt.MenuComponent
7
6.2.1 容器组件
13
6.2.2 框架JFrame
₪ 例6.1 一个简单的框架。
■ 要求:设置框架的标题、位置、大小、背景色、单击 窗体右上角关闭图标时结束程序。 ■ 程序结果如下图示。
14
6.2.3 布局管理器
₪ 容器对其中所包含组件的排列方式,包括组件的位 置和大小设定,被称为容器的布局(Layout)。 ₪ 为了使图形用户界面具有良好的平台无关性,Java 语言提供了布局管理器来管理容器的布局,而不建 议直接设置组件在容器中的位置和尺寸。如果一个 容器已经定义了布局管理器,则不能再设置其中各 个组件的大小和位置。 ₪ 布局是容器类的特性,每种容器都有一种默认布局。 ₪ 如果一个容器要改变默认布局管理器,可以调用 setLayout()方法。
第六章GUI图形用户界面自动保存

基本组件
被放在容器中的某个位置,完成具体的与用户 交互的功能。使用组件的步骤为: 1. 创建某种基本组件的新对象,指定对象的属性,如外观,
大小等。 2. 将该组件对象加入到某个容器的合适位置。 3. 创建该组件对象的监听者,即实现以它为事件源的事件
监听接口。
标签(Label)和按钮(Button)
void addXXXListener(XXXListener l) 来依附于某个事件源。即事件源通过该方法来将自己注册 给监听器。下表列出了常用的事件监听器接口及其抽象方 法。
接口 ActionListener ItemListener WindowListener
ComponentListener
b), isEditable(), select(int start,int end), selectAll(),
setSelectionStart(int start),setSelectionEnd(int end), getSelectionStart(), getSelectionEnd(), getSelectedText() TextField: setEchoChar(char c), echoCharIsSet(), getEchoChar() TextArea: append(String s), insert(String s,int index) 产生事件:文本事件,动作事件(TextField)
Java 的事件处理
对于每类事件,都有一个接口,这个接口必须由想接收这 个事件的类的对象实现。
动作事件(ActionEvent)
ActionEvent类只包含一个事件
文本事件(TextEvent)
TextEvent类只包含一个事件
Java图形用户界面ppt课件

18
1.4 布局管理器-FlowLayout
1. FlowLayout
FlowLayout 是Panel,Applet的缺省布局管理器。其组件的放 置规律是从上到下、从左到右进行放置,如果容器足够宽,第一 个组件先添加到容器中第一行的最左边,后续的组件依次添加到 上一个组件的右边,如果当前行已放置不下该组件,则放置到下 一行的最左边。
11
1.2 组件和容器
容器(Container)也是一个类,实际上是Component的 子类,因此容器本身也是一个组件,具有组件的所有 性质,但是它的主要功能是容纳其它组件和容器。
布局管理器(LayoutManager):每个容器都有一个布 局管理器,当容器需要对某个组件进行定位或判断其 大小尺寸时,就会调用其对应的布局管理器。
Java图形用户界面
Java界面设计的用途
Java 的图形界面工具包,可以用于工具类软 件开发、管理类软件开发、通用客户端开发 、银行客户端软件开发、Eclipse 插件开发等 方向。在许多知名的大型软件中,都能够见 到 Java 的身影,如思维导图软件、Eclipse、 IDEA 开发环境等。
5
如何选择 GUI 工具包
AWT、Swing、SWT是 Java 中的三大 GUI 工具包,其中 Swing 是最灵活、 强大的 GUI 工具包,所以在界面开发 中,首选 Swing ,它可以胜任绝大多 数开发工作。
6
本讲内容
1、AWT事件处理模型 2、布局管理器 3、Swing简介 4、Swing组件和容器
为了使我们生成的图形用户界面具有良好的平台无关 性,Java语言中,提供了布局管理器这个工具来管理 组件在容器中的布局,而不使用直接设置组件位置和 大小的方式。
JAVA复习题及答案

JAVA复习题及答案第一章JAV A概述1.JA VA中哪三种平台:J2ME(嵌入式平台),J2SE(标准平台),J2EE(企业级平台).2.JA VA从第几版称为JA V A2:JA V A 1.2版。
3.JA VA有否指针:无。
4.JA VA的API指的是什么:Application ProgrammingInterface,JA V A的类库。
5.JA V A平台无关性是如何实现的:通过编译生成与平台无关的代码──字节码,而不是通常的特定机器上的机器码,由平台上的Java虚拟机中的Java解释器解释执行。
6.JA VA有哪两种程序形式:Application和Applet程序。
7.Application程序运行时系统调用程序的哪个方法:main()方法。
Applet程序执行时系统自动调用程序的哪个方法:init()方法。
8.绘图程序中系统自动调用哪个方法:paint(Graphics g)方法。
9.JDK是什么:Java开发工具包(Java Development Kit )的缩写,包括JAVA类库、JAVA编译器、JAVA解释器、运行时环境、命令行工具。
10.有哪几种主要的可视化的集成源程序编辑环境:Eclipse,JCreator, JBuilder等。
11.安装JDK的可执行文件是:jdk-1_5_0-windows-i586.exe12.安装JDK帮助文档的是:jdk-1_5_0-doc.zip第二章JAV A语言基础13.保留字是什么意思,能否用于程序员定义自己的类、方法、变量等名字:JA V A中已定义的用于特定用途的标识符。
不能。
14.i++与++i有什么区别?15.写出各种转义字符?p17。
\t, \n, \r, \‖, \’, \\16.编程良好习惯中,对象名、包名、类名、变量名、常量名、接口名、方法名中的字符的大小写如何设置?Package –名词且小写;Class--名词且第一个字母大写;Interface—同Class;Methods-动词且第一个字母小写,分隔词第一个字母大写,不用‖-―;Variable—第一个字母小写,不用‖_‖,‖$‖(对于inner class有意义);Constants—大写并用‖_‖17.标识符的用途:用于给类、方法、变量、接口、程序块、对象等起名字。
第6章 图形用户界面

第6章图形用户界面6-1 什么是组件?组件类与普通类有什么不同?【答】组件是构成图形用户界面的基本成分和核心元素;组件是具有以下特性的对象:运行时可见,能拥有并管理其他组件,在窗口中可操纵,可获得输入焦点等。
组件类Component 是一个抽象类,是AWT组件类层次结构的根类,它提供对组件操作的通用方法。
6-2 设计Windows应用程序的图形用户界面需要哪些基本知识?【答】需要掌握Java组件的使用方法,理解委托事件处理模型,掌握多种布局方式。
6-3 什么是容器组件?它有什么特点?Java提供了哪些容器组件?【答】容器组件是一种能够容纳其他组件的特殊组件。
特点:能容纳其他组件,并在其可视区域内显示这些组件。
Java提供了窗口(window)和面板(panel)两种容器。
6-4 窗口与对话框有什么不同?框架与面板有什么不同?【答】对话框是窗口类的子类,对话框也是一种可移动的窗口,不能作为应用程序的主窗口,它依赖于一个框架窗口而存在,当框架窗口关闭时,对话框也关闭。
框架类是一种带标题栏并且可以改变大小的窗口;它是窗口类的子类,所以它可以独立存在,可被移动,可被最大化和最小化,有标题栏、边框、可添加菜单栏;而面板不能独立存在,必须包含在另一个容器里,面板没有标题,没有边框,不可添加菜单栏。
6-5 什么是事件?什么是事件源?事件处理程序写在哪里?【答】事件是指一个状态的改变,或者一个活动的发生。
产生事件的组件称为事件源。
事件处理程序写在事件监听器接口中声明的方法中。
如:单击事件的事件处理程序由ActionListener接口中的actionPerformed()方法实现。
6-6 如何理解Windows应用程序的图形用户界面是事件驱动的?【答】一个组件的多个事件之间,多个组件的多个事件之间,其事件处理方法的执行次序是有规律的:1.不同组件的事件或同一组件的不同事件具有约定的执行次序。
2.各组件的事件处理方法是否执行以及执行次序,取决于用户操作。
Java语言程序设计基础教程课件(第6章)

只能向滚动面板添加一个组件
构造方法
ScrollPane() ScrollPane(int a)
a的取值: 1)SCROLLBARS_ALWAYS 、
2)SCROLLBARS_AS_NEEDED、
3)SCROLLBARS_NEVER
P134【例6-3】使用ScrollPane容器
con.add(String s,Component b) con.add(Component b,String s)
card.show(con,s) card.first(con) st(con) card.previous(con) card.next(con)
Container(容器)的子类,属内层容器
在外层容器内部实现分块布局
默认布局是FlowLayout布局
常用方法同Frame
java.awt.ScrollPane类——滚动面板
P133 【例6-2】使用Panel容器
6.3.3 ScrollPane
java.awt.ScrollPane——滚动面板
但是它的主要功能是容纳其它组件和容器
容器通过add()方法向容器中添加组件。
有三种类型的常用容器:
Frame、 Panel、 ScrollPane。
6.3.1 Frame
Frame类是Container类的间接子类
可以向窗口添加组件
顶层容器,不容许被添加
默认布局是BorderLayout
方法说明
绘制组件
重绘组件 设置组件的大小和位置 设置组件可见性 设置鼠标指向组件时的光 标形状。 将变化后的界面显示出来 更新组件
Java程序设计GUI 图形用户界面PPT 课件,Java学习和备课必备资料

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)带参的构造方法:用一个字符串作为参数,此字符串将成为窗体的标题。
第6章 Swing编程

JFrame编程示例2
例8_2_2 FrameDemo2.java源代码——采用继承方式创建窗口应用程序示例 import javax.swing.*; import java.awt.event.*; class FrameDemo2 extends JFrame{ FrameDemo2(){ setTitle("JFrameDemo"); setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); setResizable(false); setSize(200,150); show(); } public static void main(String[] args) { FrameDemo2 frame=new FrameDemo2(); } }
组件常用方法
public void setLocation(int x,int y)——设置组件在容器中 的位置 public Dimension getSize() ——返回一个Dimension 对象的引用,该对象实体中含有名字是width和height 的成员变量。 public Point getLocation(intx,inty) ——返回一个 Point对象的引用,该对象实体中含有名字是x和y的成 员变量。 public void setBounds(int x,int y,int width,int height)——设置组件在容器中的位置和组件的大小。 该方法相当于setSize()方法和setLocation()方法的组 合。
组件常用方法
public void setBackground(Colorc)——设置组件的背景色。 public void setForeground(Colorc)——设置组件的前景色。 public Color getBackground(Colorc)——获取组件的背景色。 public Color getForeground(Colorc)——获取组件的前景色。 Color类是iava.awt包中的类,该类创建的对象称为颜色 对象。用Color类的构造方法public Color(int red,int green,int blue)可以创建一个颜色对象,其中red、green、blue的取 值在0—255之间。另外,Color类中还有red、blue、green、 orange、cyan、yellow、pink等静态常量,都是颜色对象。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
Font font1=new Font("宋体 宋体",Font.BOLD+Font.ITALIC,15); 宋体 String s="中国北京 中国北京"; 中国北京 g.setColor(c1); g.setFont(font1); g.drawString("红色 红色"+s,10,20); 红色 g.setColor(c2); g.drawString("红色 红色"+s,10,40); 红色 g.setColor(c3); g.drawString("粉色 粉色"+s,10,60); 粉色 } }
思考: 思考:
若将例1中的 若将例 中的 g.drawString(s,10,30); 替换为 for(int i=0;i<s.length();i++) g.drawString(""+s.charAt(i),10,35+i*30); 并将page1.html中的 并将 中的WIDTH=200 HEIGHT=60 中的 改为 WIDTH=200 HEIGHT=150 结果会怎样? 结果会怎样?
图形用户界面GUI(Graphics User Interface), ( 图形用户界面 , 就是应用程序提供给用户操作的图形界面, 就是应用程序提供给用户操作的图形界面,包括窗 菜单、按钮、工具栏和其他各种界面元素。 口、菜单、按钮、工具栏和其他各种界面元素。 里有两个包为GUI设计提供了丰富的功能: 设计提供了丰富的功能: 在Java里有两个包为 里有两个包为 设计提供了丰富的功能 awt(abstract windows toolkit)包和 包和swing包。 包和 包
import java.applet.*; import java.awt.*; public class DrawCharByte extends Applet { public void init() { setBackground(Color.black); } public void paint(Graphics g) { String s="中国北京 中国北京"; 中国北京 g.setColor(Color.red); g.drawString(s,20,40);
例1:编写一个简单的设置字体的程序,将字体设置为宋 :编写一个简单的设置字体的程序, 黑体,大小为30个像素 并在小程序窗口输出。
//TestFont.java
import java.applet.Applet; import java.awt.Graphics; import java.awt.Font; public class TestFont extends Applet { public void paint(Graphics g) { Font font1=new Font("宋体 宋体",Font.BOLD,30); 宋体 g.setFont(font1); String s="中国北京 中国北京"; 中国北京 g.drawString(s,10,30); } Graphics.drawstring(String str,int x,int y),其中 , } 的坐标x和 指的是整个文本块显示时左下角的位置 指的是整个文本块显示时左下角的位置。 的坐标 和y指的是整个文本块显示时左下角的位置。
Java图形用户界面 第6章 Java图形用户界面
6.1 图形用户界面概述和 图形用户界面概述和java.awt包简介 包简介 6.2 字体和颜色的设置、图形绘制和图像显示 字体和颜色的设置、 6.3 Graphics2D画图简介 画图简介
6.1 图形用户界面概述和 图形用户界面概述和java.awt包简介 包简介
//page1.html <HTML> <HEAD><TITLE>Java 小程序 小程序</TITLE></HEAD> <BODY> <APPLET CODE="TestFont" WIDTH=200 HEIGHT=60></APPLET> </BODY> </HTML>
运行后结果如下: 运行后结果如下:
GUI组件分类 组件分类
的概念中, 在AWT的概念中,窗口系统中所显示的各种对象都 的概念中 统称为“ 组件” )。组件有 统称为“GUI组件”(Component)。组件有基本 组件 )。组件有基本 组件和容器组件之分 之分。 组件和容器组件之分。 基本组件是不能包含其它组件的组件, 不能包含其它组件的组件 基本组件是不能包含其它组件的组件,是构成图 形用户界面的基本元素。 形用户界面的基本元素。 容器组件是用来包含其他组件 包含其他组件的 容器组件是用来包含其他组件的,故称之为容器 )。用户可以把各种组件放入到容器中 (container)。用户可以把各种组件放入到容器中, )。用户可以把各种组件放入到容器中, 也可以把容器放到另一个容器中,从而形成具有层 也可以把容器放到另一个容器中, 次的组件结构。 次的组件结构。
awt是java GUI的早期版本,组件种类有限,只提供基 是 的早期版本, 的早期版本 组件种类有限, 本的GUI设计类。 设计类。 本的 设计类 swing包是 包是SUN公司对早期版本的改进版本,它提供了 公司对早期版本的改进版本, 包是 公司对早期版本的改进版本 更加丰富的组件和功能。 更加丰富的组件和功能。 swing会用到 会用到awt中许多知识,学习 中许多知识, 包是学习GUI编 会用到 中许多知识 学习awt包是学习 包是学习 编 程的基础。 程的基础。
6.2.3 字符数组和字节数组的显示 以下三个方法是Graphics类(该类在java.awt包中)的方法。 类 该类在 包中) 以下三个方法是 包中 的方法。 1. 绘制字符串 public void drawString(String str, int x, int y) 坐标点(x,y)与要绘制的字符串Str左下角对应。 坐标点( )与要绘制的字符串 左下角对应。 左下角对应 2.绘制字符数组 绘制字符数组 public void drawChars(Char chars[ ],int offset,int number,int x,int y) 参数offset是数组的起始下标,参数number是要绘制的元 是数组的起始下标,参数 参数 是数组的起始下标 是要绘制的元 素个数,坐标点( )含义同上。 素个数,坐标点(x,y)含义同上。
第一种是用r, , 值创建一种不透明的颜色 第二种是用r, , 值创 值创建一种不透明的颜色。 第一种是用 ,g,b值创建一种不透明的颜色。第二种是用 ,g,b值创 建一种透明的颜色, 表示透明度 参数取值为0.0f~1.0f。 表示透明度。 建一种透明的颜色,a表示透明度。参数取值为 。
二、Color类的颜色常量 类的颜色常量 Color类共有 种颜色常量,使用的时候可以查询 类共有13种颜色常量 使用的时候可以查询API 类共有 种颜色常量, 文档。 文档。 如:Color.RED表示红色 表示红色
第一种是用r,g,b值创建一种不透明的颜色 第二种是用r,g,b值创 值创建一种不透明的颜色。 第一种是用r,g,b值创建一种不透明的颜色。第二种是用r,g,b值创 建一种透明的颜色, 表示透明度 参数取值为0~255。 表示透明度。 建一种透明的颜色,a表示透明度。参数取值为 。
public Color(float r,float g,float b) , , public Color(float r,float g,float b,float a) , , ,
Font.PLAIN 例:
Font.BOLD
Font.ITALIC
Font font1=new Font(“楷体 楷体_GB2312”,Font.BOLD+Font.ITALIC,50); 楷体
二、设置字体 public void setFont(Font font) -设置字体 设置字体 public Font getFont() -返回当前字体对象 返回当前字体对象 字体的创建和设置应在显示前进行,否则以系统默认字体显示。 ※字体的创建和设置应在显示前进行,否则以系统默认字体显示。
java.awt包中的一些常用类 包中的一些常用类
Object类 类 java所有类的父类(java的基类) 所有类的父类( 的基类) 所有类的父类 的基类
Font 字体类 Color 颜色类 Graphics 几何绘图类 Componet 组件类 CheckboxGroup 按钮组合 FlowLayout 布局管理器 BorderLayout 边界布局管理器 GridLayout 网格布局管理器 GridBagLayout 网袋布局管理器 Event 事件处理类 MenuComponet 菜单组件类
6.2 字体和颜色的设置、图形绘制和图像显示 字体和颜色的设置、
6.2.1 设置字体 一、创建Font类的对象 创建 类的对象 使用java.awt包中的 包中的Font类的构造函数创建字体类的对象。 类的构造函数创建字体类的对象。 使用 包中的 类的构造函数创建字体类的对象 Font(String name,int style,int size) ( , , )
编写一个颜色设置的程序。 例2. 编写一个颜色设置的程序。
//TestColor.java
import java.applet.Applet; import java.awt.*; public class TestColor extends Applet { public void init() { setBackground(Color.black); } public void paint(Graphics g) { Color c1=new Color(255,0,0); Color c2=new Color(255,0,0,128); Color c3=Color.pink;