17xie > Java语言实用教程 > 第11章 简单GUI编程
背景:                 
[本书目录] [图书首页] [本书讨论区]  
链接地址:http://www.17xie.com/read-2613.html    注册17xie 一起来写书 实现您的出书梦想!

 11  简单GUI编程

内容提示:程序设计开发中一个重要的工作就是做好程序与用户之间的交互,而图形用户界面就是用图形的方式实现人与计算机的交互,它为用户提供了一个直观、方便、快捷的输入输出界面。Java提供了强大的图形用户包,开发人员可以方便地建立用户图形窗口界面,响应并处理交互事件。

11.1  JavaGUI

图形用户界面(Graphics user interface, GUI)是指用图形的方式,借助菜单、按钮等标准界面元素和鼠标操作,帮助用户方便地向计算机系统发出指令、启动操作,并将系统运行的结果以图形方式显示给用户的技术。由于用户界面设计质量的好坏直接影响软件的使用,Java语言对此也十分重视,几乎在JDK每个新的版本中,都增加了一定的GUI程序设计新技术或功能,Java语言的GUI发展始终保持着较好的连贯性和兼容性。

目前Java主要提供了两个处理图形用户界面的类库:java.awtjavax.swing

AWT:抽象窗口工具集(Abstract Windows Toolkit,由于Java代码可以在不同的系统平台运行,而不同平台的图形界面外观设计各有差异,所以Java程序的图形用户界面在不同的平台上可能出现不同的运行效果,其外观取决于具体的平台,所以称AWT是一个抽象的工具集。

SwingSwing是在AWT的基础上构建的,提供了比标准AWT组件更强大和灵活的功能。与AWT组件不同的是,Swing组件不是由特定的平台代码实现,而是纯粹的Java代码,因此能够实现与平台的无关(此类组件一般被称为轻量级组件)。

利用GUI类库设计和实现图形用户界面的工作主要有两个:一是应用的外观设计,即创建组成图形界面的各部件,指定其位置和属性关系,根据需要进行排列,从而构成完整的图形用户界面的物理外观;二是与用户的交互处理,包括定义图形用户界面的事件以及各部件对不同时间的响应处理。

11.2  AWT抽象窗口工具集

AWT类包含在java.awt包中,主要包括用户界面组件、事件处理模型、图形和图像工具、布局管理器等。Java.awt包中的主要类及组件类的继承关系如图11-1所示。

11-1  java.awt包的主要类及组件类的继承关系

构造方法

功能描述

Checkbox()

创建不含标签的复选框

Checkbox(String label)

创建含有标签的复选框

Checkbox(String label, boolean on)

创建含有标签的复选框,并可指定选取状态

Checkbox(String label, CheckboxGroup g, Boolean on)

创建含有标签并可指定选取状态和复选框群组的复选框

 

11-2列出了CheckBox类的常用方法

11-2  CheckBox的常用方法

方法

功能描述

String getLabel()

获得此复选框的标签

boolean getState()

获得此复选框的选取状态

void setState(boolean state)

设置此复选框的选取状态

Object[] getSelectedObjects()

获得被选取的复选框

CheckboxGroup getCheckboxGroup()

返回复选框输入哪个组

void setSelected Checkbox(Checkbox)

设置群组中指定的复选框为被选取的状态

 

【例11-9】流式布局管理器FlowLayout类的应用。

//********** ep11_9.java **********

import java.awt.*;

class ep11_9 extends Frame{

  static Frame frm=new Frame("流式布局管理器应用");

  public static void main(String args[]){

    FlowLayout flow=new FlowLayout(FlowLayout.CENTER,5,10);

    Button but=new Button("按钮");

    Label lab=new Label("标签");

    frm.setLayout(flow);      //设置布局为流式布局

    frm.setSize(200,150);

    frm.setBackground(Color.RED);

    frm.add(but);

    frm.add(lab);

    frm.add(new TextField("流式布局",18));

    frm.setVisible(true);

  }

}

运行结果如图11-10所示:

11-10  左图为程序执行窗口右图为拉大后控件自动重新排列

 

练习题

11.1 什么是GUI?功能是什么?

11.2 JavaGUI工具包有____________

11.3 通过调用方法______可以改变当前容器的布局方式。

11.4 通过______方法向容器中添加组件。

11.5 AWT布局管理器有______________________________

11.6 Java GUI编程中常用的JButton______

A. 对象    B. 组件     C. 变量    D. 接口

11.7 ______可作为所有窗体和对话框的顶层窗体使用。

A. JPane    B. JFrame    C. JComponent    D. JWindows

11.8 下面哪个事件监听器可以处理在文本框中输入回车键的事件______

A. ItemListener    B. ActionListener

C. KeyListener    D. MouseListener

10.9 下列说法中错误的是______

A. Swing相比,AWT更依赖于底层平台

B. Swing可以完全取代AWT

C. Component类是所有AWT组件的根

D. 容器用布局管理器来控制其中组件的摆放

11.10 利用AWT控件编写一个求解一元二次方程根的程序,要求:

1)具有一元二次方程三个系数abc的输入界面。

2)显示b*b-4*a*c的值。

3)显示求出的根。

11.11 编写一个应用程序,窗口标题为“移动按钮”,窗口布局为null,在窗口中有两个按钮,单击其中一个按钮能够让另一个按钮移动。

11.12 实现窗口登陆对话框,要求输入用户名和密码,如果输入正确,弹出对话框提示正确,否则提示错误。


字数:3303    最后更新:1年以前 [10-11 17:42]屈辰晨 修改
本页编辑者:屈辰晨  
[前一页]:第10章 输入输出流与文…  [后一页]:第12章 Java Applet基…
[在本页中加入书签] [收藏本书] [推荐本书]
  17xie论坛 > 本书讨论区 > 本页评论   (共0条)
发表评论

用户名称 匿名发表
评论内容
验证码

关于我们 | 版权声明 | 免责声明 | 诚聘英才 | 联系我们 | 合作伙伴 | 友情链接 | 广告合作 | 提交意见
Copyright © 2007 17xie.com 互联网协同写书平台 京ICP备08002671号