
常用软件类: |
|杀毒安全 | |联络聊天 | |网络软件 | |多媒体类 | |系统工具 | |图形图像 | |系统工具 | |应用软件 | |行业软件 |
开发设计类: |
|动画制作 | |图像处理 | |3D设计 | |操作系统 | |站长学院 | |网络相关 | |WEB设计 | |数据库类 | |程序开发 |
Java的图形界面与设计
图形用户界面(Graphics User Interface),简称GUI,使用图形的方式,借助菜单、按钮等标准界面元素和鼠标操作,帮助用户方便地向计算机系统发出指令,启动操作,并将系统运行的结果同样以图形方式显示给用户。图形用户界面画面生动、操作简单,省去了字符界面用户必须记忆各种命令的麻烦,深受广大用户喜爱和欢迎,已经成为目前几乎所有应用软件的既成标准。所以学习设计和开发图形用户界面,是应用软件开发人员必修的一课。
JAVA中构成用户界面的各种元素和成分可以粗略地分成为三类:容器、控制组件和用户自定义成分。
1.容器
容器是用来组织其他界面成分和元素的单元。一般说来一个应用程序的图形用户界面首先对应于一个复杂的容器,如一个窗口。这个容器内部将包含许多界面成分和元素,这写界面元素本身也可以又是一个容器,这个容器将再进一步包含它的界面成分和元素,依次类推就构成一个复杂的图形界面系统。
容器的主要作用和特点有:
(1)容器有一定的范围。一般容器都是矩形的,容器范围边界可以用边框框出来,有些则没有可见的标记。
(2)容器有一定的位置。这个位置可以是屏幕四角的绝对位置,也可以是相对于其他容器边框的相对位置。
(3)容器通常都有一个背景,这个背景覆盖全部容器,可以通明,也可以指定一幅特殊的图案,使界面生动化和个性化.
(4)容器中可以包含其他的许多界面成分和元素。当容器被打开显示时,它上面的所以成分和元素也同时显示出来,当容器被关闭和隐藏时,它所包含的成分和元素也一起被隐藏。
(5)容器可以按一定的规则来物理地安排它所包含的元素,如这些元素的相对位置关系、它们的的前后排列关系等。
(6)容器可能被包含在其他容器之中。
2.控制组件
与容器不同,控制组件是图形用户界面的最小单位之一,它里面不再包含其他的成分.控制组件的作用是完成与用户的一次交互,包括接受用户的一个命令,接受用户的一个文本输入,向用户显示一段文本或一个图形等。从某种程度上来说,控制组件是图形用户界面标准化的结果,目前常用的控制组件有:
(1)复选框(Checkbox)
(2)单选按钮(CheckboxGroup或RadioButton)
(3)下拉列表(List或Choice)
(4)标签(Label)
(5)文本编辑区(Edit或Textfield,TextArea)
(6)按钮(Button)
3.用户自定义成分
除了标准的图形界面元素,编程人员还可以根据用户需要设计一些用户自定义的图形界面成分,例如绘制一些几何图形,使用标志图案等。用户自定义成分由于不能像标准界面元素一样被系统识别和承认,所以通常只能起到装饰、美化等作用,而不能响应用户的动作,不具有交互功能。
1.复选框(Checkbox)
例子:
上面的例子是怎样用JAVA实现的呢?
它的语法如下:
import java.awt .*;
import java.applet .*;
import java.awt.event.* ;
public class FuXuan extends Applet
implements ItemListener
{
public void init()
{
Checkbox one=new Checkbox("猫");
Checkbox two= new Checkbox("狗",true);
Checkbox three=new Checkbox("兔",false);
one.addItemListener(this);
add(one);
two.addItemListener(this);
add(two);
three.addItemListener(this);
add(three);
}
public void itemStateChanged(ItemEvent e)
{
}
}
分析:
第3行:调入处理包,以处理复选框的事件
第4行:implements是加入事件的接口,用implements来调用接口,这个接口函数是ItemListener;
第8行:调用函数Checkbox建立第1个选项,默认状态为假,即没有事先选中。
第9行:建立一个事先已经默认为正确的选项。
第12,14,16行:当用户点击复选框使其状态发生变化时就会引发ItemEvent类代表的选择事件。这个复选框已经把自身注册给ItemEvent事件的监听者ItemListener.系统会自动调用这个 ItemListener中的public void itemStateChanged(ItemEvent e)方法来响应复选框的状态改变。实际的实现了ItemListener接口的监听者。这个方法的方法体通常包括这样的语句:调用选择事件的方法e.getSelectable()获得印发选择事件的事件源对象引用,再调用e.getState()获取选择事件之后的状态。也可以直接利用事件事件原对象自身的方法操作,不过要注意的是getSelectable()方法的返回值是实现了Selectable接口的对象,需要把它强制转化成真正的事件原对象类型。例如: ((Checkbox)e.Selectable).getState():与e.getState效果是一致的。
第13,15,17行:将one、two、three三个复选框加入到面板中去,以使起能够在屏幕上显示出来。
2.单选按钮(CheckboxGroup)
上面的例子是怎样用JAVA实现的呢?
它的语法如下:
import java.awt .*;
import java.applet .*;
import java.awt.event .*;
public class DanXuan extends Applet implements ItemListener
{
public void init()
{
CheckboxGroup cbg=new CheckboxGroup();
Checkbox one=new Checkbox("正确",false,cbg);
Checkbox two=new Checkbox("不正确",false,cbg);
Checkbox three=new Checkbox("我也不知道",true,cbg);
one.addItemListener(this);
two.addItemListener(this);
three.addItemListener(this);
add(one);
add(two);
add(three);
}
public void itemStateChanged(ItemEvent e)
{
}
}
分析:
第9行: 先建立一个新表单f,f的名称为checkbox Group
第10行:调用函数 CheckboxGroup 建立一个新的单选按钮组cbg
第11行:调用函数Checkbox建立第1个选项,名称为"one",默认状态为假,即没有事先选中。
第12行:建立一个事先已经默认为正确的选项,名称为“three”。
第13,14,15行:当用户点击复选框使其状态发生变化时就会引发ItemEvent类代表的选择事件。这个单选框已经把自身注册给ItemEvent事件的监听者ItemListener.系统会自动调用这个 ItemListener中的public void itemStateChanged(ItemEvent e)方法来响应单选框的状态改变。实际的实现了ItemListener接口的监听者。调用 CheckboxGroup的getSelectbox()方法可以获得用户选择了哪个按钮,这个方法返回用户选中的Checkbox对象,再调用该对象的方法getLabel()就知道用户选择了什么样的信息。同样,通过调用 CheckboxGroup的setSelectCheckbox()方法,可以在程序中指定单选按钮组中的哪个按钮。例如下面的语句说明选择为不知道: cbd.setSelectedCheckbox(three);另外也可以直接使用按钮组中的Checkbox单选按钮的方法,例如直接调用:one.getState(); 就可以知道这个按钮被选中了,那么其他按钮一定处于未选中状态。
第16,17,18行:将one、two、three三个标签加入到容器f中去,以使起能够在屏幕上显示出来。
第20行则是事件处理函数了!专门用来处理单选项改变的效果!这儿没有加入代码。所以它不能处理任何事件。
3.下拉列表(Choice)和列表(List)
1.下拉列表:
上面的例子是怎样用JAVA实现的呢?
它的语法如下:
import java.awt .*;
import java.applet .*;
import java.awt.event .*;
public class Liebiao1 extends Applet implements ItemListener
{
public void init()
{
Choice c= new Choice();
c.add ("-----初始选项------");
c.add ("第一选项");
c.add ("第二选项");
c.add ("第三选项");
c.add ("第四选项");
c.addItemListener(this);
add(c);
}
public void itemStateChanged(ItemEvent e)
{
}
}
分析:
第8行:调用函数 Choice 建立一个新的下拉列表 c
第9行:调用c.add建立第1个选项,名称为"----初始选项----",这是
默认状态,即屏幕上什么也没有选时的选项。它的序号是0
第10行:建立第2个选项,名称为“第一选项”实际上它已经是第2个
选项,这属于一点小小的技巧问题。它的序号是1。这相信大家可以
更好地理解。