当前位置:文档之家› 第6章 Java图形用户界面

第6章 Java图形用户界面


标签 标签不可以被用户编辑
主要功能 创建一个没有文字的标签 创建一个以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 " + ); }
相关主题