第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组件。
本章将介绍如何编写自定义组件,并讲解一些常见的自定义组件的实现方法。
java编程飞机大战课程设计
java编程飞机大战课程设计一、课程目标知识目标:1. 让学生理解Java编程基本概念,掌握面向对象编程思想;2. 让学生掌握Java中数组、循环、条件语句等基本语法结构;3. 让学生了解游戏开发的基本流程和原理。
技能目标:1. 培养学生运用Java编程语言设计飞机大战游戏的能力;2. 培养学生分析问题、解决问题的能力;3. 培养学生团队协作、沟通交流的能力。
情感态度价值观目标:1. 激发学生对编程的兴趣和热情,培养计算机科学素养;2. 培养学生勇于尝试、克服困难的精神,提高自信心;3. 培养学生遵守游戏规则,树立公平竞争的意识。
分析课程性质、学生特点和教学要求,将课程目标分解为以下具体学习成果:1. 学生能够独立编写Java程序,实现飞机大战游戏的基本功能;2. 学生能够运用所学知识,优化飞机大战游戏的性能和体验;3. 学生能够在团队合作中发挥积极作用,共同完成任务;4. 学生能够表达自己对编程和游戏的看法,分享学习心得和经验。
二、教学内容本课程教学内容主要包括以下几部分:1. Java编程基础:回顾Java基本语法,如数据类型、变量、运算符、数组等,为学生编写飞机大战游戏打下基础。
2. 面向对象编程:介绍类、对象、继承、多态等概念,使学生能够运用面向对象编程思想设计游戏。
教材章节:第1章 Java概述,第2章 面向对象编程基础。
内容列举:数据类型、变量、运算符、数组、类、对象、继承、多态。
3. Java图形用户界面:讲解Swing图形用户界面编程,使学生能够为飞机大战游戏设计界面。
教材章节:第6章 Java图形用户界面。
内容列举:JFrame、JPanel、事件处理、绘图。
4. 游戏开发原理:介绍游戏开发的基本流程、设计模式,使学生了解游戏开发的一般方法。
教材章节:第10章 游戏开发。
内容列举:游戏循环、游戏状态、游戏设计模式。
5. 飞机大战游戏设计:结合所学知识,指导学生进行飞机大战游戏的设计与实现。
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简单图形用户界面代码
}catch(FileNotFoundException e1){
e1.getStackTrace();
}catch(IOException e2){
e2.getStackTrace();
}
}
}
if(e.getSource()==registerBtn){
JFrame re=new Register();
centerPanel11=new JPanel();
centerPanel12=new JPanel();
//标题
titleLbl=new JLabel("欢迎进入考试系统");
titleLbl.setFont(new Font("隶书",Font.BOLD,24));
northPanel.add(titleLbl);
if (name.equals("")){
JOptionPane.showMessageDialog(null, "用户名不能为空,请重新输入用户名", "用户名空提示", JOptionPane.OK_OPTION);
userTxt.requestFocus();
return;
}
else if (pwd.equals("")){
//定义组件
JPanel northPanel,southPanel,centerPanel,centerPanel1,centerPanel11,centerPanel12;
JButton loginBtn,registerBtn,cancalBtn;
JLabel userLbl,passwordLbl,titleLbl;
图形用户界面设计下周一上
组件
Java的图形用户界面的最基本组成部分是组件 (Component),组件是一个以图形化的方式显示在 屏幕上并能与用户进行交互的对象,例如一个按钮, 一个标签等。组件不能独立地显示出来,必须将组件 放在一定的容器中才可以显示出来。 类ponent是许多组件类的父类, Component类中封装了组件通用的方法和属性,如图 形的组件对象、大小、显示位置、前景色和背景色、 边界、可见性等,因此许多组件类也就继承了 Component类的成员方法和成员变量,相应的成员方 法如表6-1所示。
Frame
Frame类是Container类的间接子类。当需要一 个窗口时,可使用Frame或其子类创建一个对 象。窗口也是一个容器,可以向窗口添加组件。 窗口默认地被系统添加到显示器屏幕上,因此, 不允许将一个窗口添加到另一个容器中。 Frame是顶级窗口,可以显示标题,重置大小。 当Frame被关闭,将产生WindowEvent事件, Frame无法直接监听键盘输入事件。 JFrame是Frame类的子类
public void paint(Graphics g) public void repaint() public void setSize(Dimension d) public void setVisible(boolean b) public void update(Graphics g)
以 Dimension 对象的形式返回组件的大小。
Component类常用方法
方法
protected Component() public String getName()
方法说明
构造一个新组件。 获得组件的名称。
public void setName(String name)
第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)。
标签 标签不可以被用户编辑
主要功能 创建一个没有文字的标签 创建一个以str为文字的标签
通常用来指明项目的用途
创建一个以str为文字的标签,并以align为对齐 方式,其中Label.LEFT、Label.CENTER、 Label.RIGHT分别为居左、居中和居右 主要功能 返回标签内文字的对齐方式 设置标签内文字的对齐方式 获得标签内的文字 设置标签内的文字
2.编码实现
3) 按钮的监听
语句:
okbutton.addActionListener(this);
4) 窗口调整
语句:
setSize(400,100); show();
5) 处理ActionEvent事件的方法actionPerformed()
语句:
public void actionPerformed(ActionEvent a){ Human p = new Human(nametextfield.getText()); out.setText("I am " + ); }
14
AWT组件
• 组件指可以放置在用户界面上的任何东西, 可以将组件设置为可见或重新调整其大小。 • AWT支持的组件:标签、文本域、文本区、 按钮、复选框、选择框等。 • 高级组件包括滚动条、滚动窗格和对话框。 • 向窗口加入一个组件:首先生成所需组件的 实例,然后调用add()方法,此方法是在 Container类中定义的。
18
基本组件-panel和frame间的关系
窗口 panel
按钮
19
Frame
• 在Java中,顶层窗口称为框架。在AWT库中 ,对应于框架的类是Frame
20
创建一个框架:Frame类
Frame类的构造方法 Frame() Frame(String title) Frame类的方法 Int getState() void setState(int state) String getTitle() void setTitle(String title) boolean isResizable() void setResizable(boolean r) Image getIconImage() void setIconImage(Image img)
4.测试与运行
测试程序如下: public class InstanceOfHumanTest { public static void main(String args[]) { new InstanceOfHuman(); } }
5.技术分析
1) 图形用户界面
Java的包java.awt中有AWT(Abstract Window Toolkit)负 责生成各种标准图形界面和处理界面的各种事件。
2) 事件处理机制
图形用户界面通过事件机制实现用户和程序的交互。
3) 布局管理
将加入到容器(通常为窗口等) 的组件按照一定的顺序 和规则放置,使之看起来更美观,这就是布局。布 局由布局管理器 (Layout Manager) 来管理。
6. 问题与思考
1) 本节实例和例子中的类InstanceOfHuman都 从Frame继承过来,能从Panel继承吗?为什么? 2) 在图形界面的窗口中,读入姓名、性别、 出生年月,并利用以下Human的构造方法 Human(String name, String gender,String birth) 初始化一个Human对象。为防止用户输入错 误,用单选按钮输入性别,再对gender分别 赋予"m"或"f"。
13
javห้องสมุดไป่ตู้.awt 包中的类体系结构
ng.Objec t MenuCompone nt MenuBar MenuItem Component Container Label Button FileDialog TextComponent CheckBox TextField TextArea Menu Window Panel Frame Dialog
Label类的方法 Int getAlignment() Void setAlignment(int align)
String getText() Void setText(String text)
24
文本框
TextField类的构造方法 TextField() TextField(int columns) TextField(String text) TextField(String text,int culumns)
Y坐标轴
22
创建一个框架:Frame类
创建Frame对象
方法一:通过Frame类构造Frame对象
Frame frameObj=new Frame(“窗口标题”); 方法二:从Frame类继承得到Frame对象 ……extends Frame
……
super(“窗口标题”);
23
标签
Label类的构造方法 Label() Label(String str) Label(String str,int align)
15
容器
• 可以存放组件的区域,可在容器上进行 绘制和着色 • java.awt包中的Container类可直接或间接派 生出两个类型的常用容器:窗口 (Window)和面板(Panel)。
16
容器 – 框架
• 框架是独立于Applet和浏览器的一个窗口。 • 框架是一个带有边框的独立的窗口。 • 可以通过以下任一构造函数来创建:
21
主要功能 创建没有标题的窗口 创建以title为标题的窗口 主要功能 获得Frame窗口的状态(Frame.Normal表示一般状态, Frame.ICONIFIED表示最小化状态) 设置Frame窗口的状态(Frame.Normal表示一般状态, Frame.ICONIFIED表示最小化状态) 获得Frame窗口的标题 设置Frame窗口的标题 测试Frame窗口是否可以改变大小 设置Frame窗口是否可以改变大小 返回窗口的最小化图标 设置窗口的最小化图标为img
1.详细设计
class InstanceOfHuman extends Frame implements ActionListener{ 窗口中各个对象的定义; public InstanceOfHuman(){ 图形界面的布局; 按钮的监听; 窗口调整; } 处理ActionEvent事件的方法actionPerformed(); }
int getColumns()
void setText(String text) 设置文本框的内容为text
void setColumns(int columns)
25
设置文本框的列数
标签和文本行使用示例
import java.awt.*; class TextLabelDemo extends Frame { 新建一个标签 Label lblName=new Label(“名称 :”); TextField txtName=new TextField(20); 新建一个文本 public TextLabelDemo (String title) { 域 super(title); setLayout(new FlowLayout()); add(lblName); 添加到窗口 add(txtName); } public static void main(String args[]) { TextLabelDemo t=new TextLabelDemo("正在测试组件!"); t.setSize(300,200); t.show(); } }
引言
回顾过去几章程序的输出界面
用户界面的类型:
字符用户界面(CUI) 图形用户界面(GUI)
1
图形用户界面
文本域 标签 复选框
单选按钮 文本区
按钮
2
第6章 Java图形用户界面
6.1 通过图形界面输入数据初始化Human对象
知识要点
图形用户界面 事件处理机制 布局管理
[实例] 在图形界面的窗口中,读入姓 名,并初始化一个Human对象。
• 面板是可以将许多组件组合起来的一种容器。 • 面板不是一个单独的窗口,它只是包含在窗口中 的一个区域。与Frame不同的是,Panel对象必须 被放入Window和Frame中才可见 • 最简单的创建面板的方式就是通过面板的构造方 法 Panel() 来进行。 • 通常是使用add()方法将Panel添加到Window和 Frame中 •
2.编码实现
1) 引入java.awt 和java.awt.event包
语句:
import java.awt.*; import java.awt.event.*;
class InstanceOfHuman extends Frame implements ActionListener{ Label namelabel = new Label("姓名"); TextField nametextfield = new TextField(10); Button okbutton = new Button("确定"); Label out = new Label(" ");
3.源代码 public InstanceOfHuman(){ setLayout(new FlowLayout()); add(namelabel); add(nametextfield); add(okbutton); add(out); okbutton.addActionListener(this); setSize(400,100); show(); } public void actionPerformed(ActionEvent a){ Human p = new Human(nametextfield.getText()); out.setText("I am " + ); }