Java程序设计项目教程 第9章awt和swing开发
合集下载
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
9.2.1 JComponent和JFrame
9.2.2 Swing工具集的其它常用控件
1、JLabel
标签控件用于显示短 文本字符串、图像或二者 的结合。JLabel控件不对 输入事件作出反应。因此, 它无法获得键盘焦点,用 户不能往JLabel控件中录 入数据。一般用于提示信 息。
可以通过设置垂直和水 平对齐方式,指定标签显示区 中标签内容在何处对齐。默认 情况下,标签在其显示区内垂 直居中对齐。若是只显示文本 的标签,则开始边对齐;而只 显示图像的标签则水平居中对 齐。
public static void main(String args[]) {
new NewFrame("This is a Pane", 300, 300, 400, 300);
【例9.2】创建
} } class NewFrame extends Frame {
4个Panel面板,
private Panel p1, p2, p3, p4; NewFrame(String s, int x, int y, int w, int h) {
象,并使 用其常用 方法。运 行效果如
Frame fr = new Frame();
fr.setTitle("This is a Frame"); // 设定窗体标题
fr.setSize(400, 300); // 设定窗体的宽度为400,高度为300
fr.setBackground(Color.green);
p1.setBounds(0, 0, w / 2, h / 2); p2.setBounds(0, h / 2, w / 2, h / 2);
p3.setBounds(w / 2, 0, w / 2, h / 2);
如图9-3所示。
p4.setBounds(w / 2, h / 2, w / 2, h / 2); p1.setBackground(Color.BLUE);
7 setUndecorated
禁用或启用此dialog的装饰。
8 setVisible(boolean b)
根据参数 b 的值显示或隐藏此 Dialog。
9.1.4 Panel
Pane l
Panel面板是最简单的容器类。
Panel也有标题,但不能移动、 调整大小、关闭,也不能单独存 在,必须存在于其它容器中才能 显示出来。
Java程序设计项目教程Leabharlann 第9章 AWT与Swing开发
AWT与Swing开发
人机对话在可视化程序中可以通过对话框和窗口来实 现的,所以图形用户界面(Graphical User Interface,GUI) 在软件开发中属于重要一环。它生动直观、便于操作、易 于学习,得到广泛地认可和使用。
用户通过鼠标对软件的菜单、窗口、对话框和列表框 等图形控件进行操作,能够更方便更快捷地操作软件。在 Java语言中,GUI是通过AWT和Swing来实现的。
许多组件类也就继承了 Component类的成员方法 和成员变量。常见方法见书 中表9-1所示。
7
9.1.2 Container
Container控件是一种容器类,它通过Container()构造方法来创建。因为 它继承自Component类,所以器本身也是一个组件,具有组件的所有性质, 但是它的主要功能是容纳其它组件和容器。
9.2 Swing控件编程
图9-4 Swing类常用控件
9.2 Swing控件编程
【注意】 AWT控件和Swing控件的区别:
1)AWT控件的外观由本地操作系统决定,而Swing控件的外观可以由用户来定义; 2)AWT控件中标签和按钮只能显示文本,而Swing控件中对应的不仅能够显示文本,还能显示图片; 3)Swing的可扩展性良好,用户能够自定义和扩展控件,而AWT的可扩展性较差。
5
9.1 AWT控件编程
图9-1 AWT常用控件
6
9.1.1 Component
Java的图形用户界面的最基本组 成部分是组件(Component),组 件是一个可以以图形化的方式显示在 屏幕上并能与用户进行交互的对象。
组件不能独立地显示出来,必 须将组件放在一定的容器中才可以显 示出来。
类ponent是许多组 件类的父类,Component控件可 通过Component()构造方法来创 建,Component类中封装了组件 通用的方法和属性。
27% 25%
用add()方法可以将其它控件 添加进来。在创建Frame对象后, 需要通过以下两步才能使其可见:
第一,调用setSize(int width,int height)方法设置 Frame大小。
第二,调用setVisible(true) 方法设置Frame为可见。
11
9.1.3 Window和Frame
4
setModalityType(Dialog.ModalityTy petype)
设置此 dialog 的模式类型。
5 setResizable(boolean resizable)
设置此dialog是否可由用户调整大小。
6 setTitle(String title)
将此dialog的标题设置为指定的字符串。
还可以指定文本相对于图像的位置。默认情况下,文本位于图像 的结尾边上,文本和图像都垂直对齐。
9.2.2 Swing工具集的其它常用控件
【例9.3】 在窗口中 加入标签 对象
package com.yiheng.nine;
import javax.swing.*;
import java.awt.*;
AWT与Swing开发
01
AWT控件编程
02
Swing控件编程
03
布局管理器
04
事件监听机制
05
简易计算器
目录
3
1
9.1 AWT控件编程
AWT(Abstract Window Toolkit)是用来处理图形(包含窗口与绘图)最基本的方式。
它由java.awt包提 供,是Java基础类的一 部分。它提供了构建 GUI所需的控件,有窗 口、菜单、文本框、单 选框、对话框和按钮等 等,可以根据这些控件 的输入来处理事件。
Frame窗体 Component
Window 对象
Container Dialog对话框
9
9.1.3 Window和Frame
1、Window
Window类存在多个构造方法,Window类的常用构造方法,常见的如表9-3所示。
序号
参数
1 Frame owner
Window 2
owner
表9-3 Window类的常用构造方法
// 设定窗体的背景色为绿色
fr.setLocation(300, 500); // 设定窗体左上角的初始位置为(300,500)
图9-2所示。
fr.setResizable(false);
// 设定窗体为不可调整大小
fr.setVisible(true);
// 将窗体设为可见
System.out.println("title="+fr.getTitle());// fr.getTitle 获得当前窗口标题
Panel本身只有addNotify()和 getAccessibleContext()两个方法
9.1.4 Panel
package com.yiheng.nine;
import java.awt.*;
/**
* Created by hcm on 2018/10/26.
*/
public class Eg9_2 {
super(s);
并将它们添加
setLayout(null); p1 = new Panel(null); p2 = new Panel(null);
到Frame窗体
p3 = new Panel(null); p4 = new Panel(null); // 设置Panel对象的大小和位置
中,运行效果
8
9.1.3 Window和Frame
Window 对象是一个没有边界和菜单 栏的顶层窗口,它不依赖于其它容器而独 立存在。从图9-1中可以看到,Window 有两大子类:Frame窗体和Dialog对话框。 Frame有标题,能移动、调整大小,而 Dialog没有标题,可移动和调整大小。
Window除了从Component和 Container中继承方法外,自身还有很多 方法,具体见书中表9-4所示。
9.1.3 Window和Frame
序号 1 getTitle() 2 isResizable()
表9-7 Dialog类的常用构造方法
方法名
功能说明
获得dialog的标题。
指示此dialog是否可由用户调整大小。
3 setModal(booleanmodal)
指定此 dialog 是否应该是有模式的。
System.out.println("visible="+fr.isResizable());//fr.isResizable判断此窗体是否可由用户调整大小
} }
12
9.1.3 Window和Frame 图9-2 案例9.1运行结果
9.1.3 Window和Frame 3、Dialog类的常用方法
对话框dialog 可以是无模式的(默认情况下)或有模式的。 有模式的 dialog 会阻止将内容输入到应用程序中的其他一些顶层 窗口中(将此 dialog 创建为其所有者的所有窗口除外)。
Dialog类存在多个构造方法,常见的如书中表9-6所示。
Dialog可以继承Window、Component和Container中的所有 方法,另外自身还有很多方法,自身的方法具体见表9-7所示。
AWT中,由Component类及子类或者间接子类创建 的对象称之为控件(也称组 件),由Container类及
子类或间接子类创建的对象称之为容器。
Awt包中有丰富的类,如处 理图像、绘制图形、显示字体、 利用本地剪贴板实现数据传送以 及控制用户界面的布局等具有辅 助性质的类。
一个容器可以容纳多个其它容器和基本 控件,容器本身也是控件,具有控件的所有 性质。布局等具有辅助性质的类。AWT中 类的体系结构如图9-1所示。
package com.yiheng.nine;
import java.awt.*;
/**
【例9.1】 创建一个 Frame对
* Created by hcm on 2018/10/26. */ public class Eg9_1 {
public static void main(String args[]) {
p2.setBackground(Color.GREEN);
p3.setBackground(Color.YELLOW);
p4.setBackground(Color.MAGENTA);
add(p1);
add(p2);
add(p3);
add(p4);
setBounds(x, y, w, h);
// 设置窗体的大小和位置
参数说明
功能说明
owner为要充当所有者的 构造一个新的、最初不可见的窗
Frame;如果此窗口没有所 口,使用指定的 Frame 作为其所
有者,则该参数为 null 有者。
owner为要充当所有者的 构造一个新的、最初不可见的窗
Window;如果此窗口没有 口,使用指定 Window 作为其所
所有者,则该参数为 nullll 有者。
/**
* Created by hcm on 2018/10/26.
*/
public class Eg9_3 {
setVisible(true);
}
}
17
9.1.4 Panel 图9-3 案例9.2运行结果
AWT与Swing开发
01
AWT控件编程
02
Swing控件编程
03
布局管理器
04
事件监听机制
05
简易计算器
目录
19
2
9.2 Swing控件编程
Swing控件由javax.swing包提供,从命名角度来看,Swing控件的名称都是对应的 AWT控件的名称前加个字母“J”,比如滚动条在AWT中为“ScrollBar”,而在Swing中 为“JScrollBar”, Swing中类的体系结构如图9-4所示。
10
9.1.3 Window和Frame
2、Frame
可以通过Frame()构造一 个最初不可见的Frame新实
35%
例。而Frame(String title)构 造方法是用来创建一个带有 标题的Frame窗体。
13%
Frame可以继承Window、 Component和Container中的所有方法