2011年4月自考答案中国税制

更新时间:2023-10-22 00:18:01 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

实验十一:图形用户界面的设计

一、实验目的与要求

1、掌握框架窗口的创建,学习框架窗口的属性,往框架窗口中添加组件。 2、学习在框架窗口中使用不同的布局管理器。 3、学习往框架窗口中添加多个组件。

二、实验类型

综合型

三、实验原理及说明

接口借助于类来实现,Java语言利用接口来实现多态性;Java包的机制。

四、实验仪器

安装JDK及Java IDE的计算机若干台

五、实验内容和步骤

* 1、编写一个Java程序,在程序中生成一个框架窗口,设置框架窗口的各种属性,往窗口中添加按钮。

//Windows.java

* import java.awt.*; //导入java.awt包 public class Windows { public static void main(String []args) { Frame frm=new Frame(); //创建框架frm frm.setSize(300,200); //设子frm的窗口大小为(300,200) frm.setTitle(\我的窗口\ //设子frm的标题为“我的窗口” frm.setBackground(Color.red); //设子frm的背景颜色为红色 frm.setLocation(200,200); //设子frm的左上角坐标为(200,200) Button b=new Button(\确定\ //创建按钮b,在按钮上的文字为“确定”

frm.add(b); //将按钮b添加到frm上 frm.setVisible(true); //显示frm } } 实验指导:

在Java应用程序中,一般独立应用程序主要使用Frame做容器,Frame类的许多方法

是从它的父类Window或更上层的类Container和Component继承过来的。Frame类具体有以下特点。

(1)Frame类是Window类的直接子类。

(2)Frame对象显示效果是一个“窗口”,带有标题和尺寸重置角标。 (3) 默认初始化为不可见,可以使用setVisible(true)方法使之变为可见。

(4) 默认的布局管理器是BorderLayout(),可使用setLayer(out)方法改变其为默认布局管理器。

2、编写一个Java程序,在程序中生成一个框架窗口,设置窗口的布局管理器为流式布局管理器。

//MyFlowLayout.java import java.awt.*;

public class MyFlowLayout extends Frame {

MyFlowLayout(String str) {

super(str);

} //定义MyFlowLayout类的构造方法,使本程序能够顺利执行

public static void main(String []args) {

MyFlowLayout frm = new MyFlowLayout(\流式布局管理器MyFlowLayout\FlowLayout flow=new FlowLayout(FlowLayout.CENTER); //创建一个流式布局管理

的实例flow,指定对齐方式为剧中对齐

Button b1 = new Button(\第一个按钮\Button b2 = new Button(\第二个按钮\

Button b3 = new Button(\第三个按钮\

frm.setLayout(flow); //设置frm的页面布局为flow frm.setSize(200,150);

frm.setBackground(Color.PINK); frm.add(b1); frm.add(b2); frm.add(b3); frm.setVisible(true); }

}实验指导:

布局管理器是指窗口上的组件遵循一定的规则来排列,并会随着窗口大小的变化来改变

组件大小与位置的一种布局方式。

为一个容器指定一个布局管理器后,当将一个组件加入该容器中时,布局管理器就能自

动设置该组件的大小和位置,当容器改变大小时,布局管理器讷讷个自动调整其中组建的大小和位置。用户可以为容器指定不同的布局管理器。在不同的布局管理器下,同一个组件将

会有不同的显示结果。

java.awt包中共定义了5种布局管理器,每个布局管理器对应一种布局策略。分别是:

流式布局管理器FlowLayout、边界式布局管理器BorderLayout、卡片式布局管理器CardLayout、网格式布局管理器GridLayout和网袋布局管理器GridBagLayout。

流式布局是一种最基本的布局,它是一种流式页面设计。流式布局管理器FlowLayout

的布局策略如下:

(1) 组件按照加入容器的先后顺序从左至右排列。 (2) 一行排满之后就自动的转到下一行继续从左向右排列。 (3) 每一行中的组件都居中排列。

FlowLayout布局管理器是Panel、Applet和Jpanel默认的布局管理方式。

当容器的组件不多时,使用布局管理器策略非常方便,但当容器中的组件增加时,就显得高低参差不齐。

查看API理解FlowLayout类的构造方法,FlowLayout类的对齐方式的主要数据成员。

3、编写一个Java程序,在程序中生成一个框架窗口,设置窗口的布局管理器为边界式布局管理器,往窗口中加入5个按钮。

//MyBorderLayout.java import java.awt.*;

public class MyBorderLayout {

public static void main(String []args) {

Frame frm = new Frame(\边界式布局管理器MyBorderLayout\

BorderLayout border=new BorderLayout(5,10); //创建一个流式布局管理的实例

border,水平间隔为5,垂直间隔为10

frm.setLayout(border); //设置frm的页面布局为border

frm.setSize(280,200);

Button b1 = new Button(\北\Button b2 = new Button(\南\

Button b3 = new Button(\西\Button b4 = new Button(\东\Button b5 = new Button(\中\

frm.add(b1,BorderLayout.NORTH); //将b1添加到frm的上方 frm.add(b2,BorderLayout.SOUTH); //将b2添加到frm的下方

frm.add(b3,BorderLayout.WEST); //将b3添加到frm的左方 frm.add(b4,BorderLayout.EAST); //将b4添加到frm的右方 frm.add(b5,BorderLayout.CENTER); //将b5添加到frm的中间 frm.setVisible(true); }

}实验指导:边界布局管理器BorderLayout将显示区域按地理方位分为东(East)、西(West)、南(South)、北(North)、中(Center)5个区域。在将组件加入容器中时,都应该指出该组件加在哪个区域中。若没有指定区域,则将组件加入到默认的中间区域。若将组件加入到已被占用位置时,将会取代原先的组件。BorderLayout是容器Frame和对话框组件Dialog默认使用的布局管理器。

查看API理解BorderLayout类的构造方法。BorderLayout类中表示组件摆放位置的主要数据成员。

4、编写一个Java程序,在程序中生成一个框架窗口,设置窗口的布局管理器为网格式布局管理器,往窗口中加入9个按钮。

//MyGridLayout.java import java.awt.*;

public class MyGridLayout {

public static void main(String []args) {

Frame frm = new Frame(\网格式布局管理器MyGridLayout\frm.setSize(300,200);

GridLayout grid = new GridLayout(3,3); //创建一个网格式布局管理的实例grid,表格

3行3列

}

frm.setVisible(true); } }

frm.setLayout(grid); //设置frm的页面布局为grid

Button [] b = new Button[9]; //定义一个类型为Button的数组b,数组长度为9 for(int i=0;i<9;i++) {

b[i]=new Button(\

frm.add(b[i]); //将b[i]添加到frm中

实验指导:网格式布局管理器GridLayout提供的页面布局规划将容器的空间划分为若干行与列的网格形式,在容器上添加组件时,它们会按照从左至右、从上至下的顺序到网格中排列。网格的行数和列数可以在创建GridLayout对象的构造方法里指定。利用GridLayout布局策略时,容器中各组件的宽度相同,同样,所有的组件高度也相同。当容器的尺寸发生变化时,各组件的相对位置不变,但各自的尺寸会发生变化。

查看API理解GridLayout类的构造方法。

在网格的布局管理器的构造方法时,若表示的行的参数row为0,则表示可以是任意数目的行,若表示列的参数cols取0,则意味着任意数目的列,但行数和列数不能同时为0.

有时候可能不想使用任何布局管理器,只想把组件放在一个固定的位置上(通常称为绝对位置)。下面是把一个组件定位在某一个位置的基本策略。

(1) 将布局管理器设置为null

setLayout(null);

(2) 将组件添加到容器中。

Abutton ok=new Button(“确定”); add(ok);

(3) 指定组件的位置和大小。

ok.setBounds(20,20,40,20);

5、编写一个Java程序,在程序中生成一个框架窗口,不使用窗口的布局管理器,加入组件,制作密码验证窗口。

//PassWordWin.java import java.awt.*;

public class PassWordWin extends Frame // 指定PassWordWin继承自Frame类 {

public static void main(String []args) {

PassWordWin frm = new PassWordWin(); // 创建PassWordWin类的实例frm frm.setSize(300,200); frm.setTitle(\密码验证\

frm.setBackground(new Color(200,200,250)); // 设置frm的背景颜色为RGB

(200,200,255)代码3 答案 Frm.setBackground(new Color(200,200,250));

frm.setLayout(null); // 取消frm的布局管理器 //创建“用户名:”标签

Label L1=new Label(\用户名:\L1.setBounds(40,50,50,20);

//创建文本框

//创建文本框,设置文本框的回显字符为’*’ TextField t2 = new TextField(50); //创建”密码:”标签

Label L2=new Label(\密码:\L2.setBounds(40,80,50,20); TextField t1 = new TextField(50); t1.setBounds(100,50,100,20);

t2.setEchoChar('*'); t2.setBounds(100,80,100,20);

//创建“确定”按钮

//将组件添加到frm中 frm.add(t1); frm.add(L1); frm.add(L2); frm.add(t2); frm.add(btn); frm.setVisible(true); }

}实验指导:在程序中,可以用方法setLayout(null)将一个容器的布局管理器置为null,然后用户自己调用component,setLayout()方法来设定容器中每个对象的大小和位置。

标签lable是用来在窗口中显示文字的控件,它可以使用java,awt类库里的Lable类创

Button btn = new Button(\确定\btn.setBounds(70,110,100,30);

建。

查看API中Lable类的构造方法及常用方法。 查看API中TextField类的构造方法及常用方法。

六、注意事项

字母大小写

七、预习与思考题

1、Java语言中常用的布局管理器有哪些?

本文来源:https://www.bwwdw.com/article/uy7f.html

Top