本篇文章给大家分享的是有关如何理解Java图形用户接口,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。
Java图形用户接口
对一个优秀的应用程序来说,良好的图形用户接口是必不可少的。缺少良好的图形用户接口,将会给用户理解和使用应用程序带来很多不便。很难想象用户为了学会使用一个应用程序,去记一大堆命令。
6.1面板
面板提?copy;了建立应用程序的空间。你可以把图形元件(包括其他面板?copy;放在一个面板上。Applet类提?copy;了一个基本的面板。
6.1.1布局管理
Java提?copy;了几种布局:顺序布局(FlowLayout?copy;、边界布局(BorderLayout?copy;和网格布局(GridLayout?copy;。
6.1.1.1顺序布局
顺序布局(FlowLayout?copy;是最基本的一种布局,面板的缺省布局就是顺序布局。顺序布局指的是把图形元件一个接一个地?reg;平地放在面板上。下面是一个顺序布局的例子:
importjava.awt.*;importjava.applet.Applet;
publicclassmyButtonsextendsApplet{Buttonbutton1,button2,button3;publicvoidinit(){button1=newButton("确定");button2=newButton("打开");button3=newButton("关闭");add(button1);add(button2);add(button3);}}
该程序生成的布局如下:
图6.1
6.1.1.2边界布局
边界布局包括五个区:北区、南区、东区、西区和中区。这几个区在面板上的分布规律是“上北下南,左西右东”。下面是一个边界布局的例子:
importjava.awt.*;importjava.applet.Applet;
publicclassbuttonDirextendsApplet{
ButtonbuttonN,buttonS,buttonW,buttonE,buttonC;
publicvoidinit(){setLayout(newBorderLayout());buttonN=newButton("?reg;");buttonS=newButton("火");buttonE=newButton("木");buttonW=newButton("金");buttonC=newButton("土");add("North",buttonN);add("South",buttonS);add("East",buttonE);add("West",buttonW);add("Center",buttonC);}}
下面是该程序运行的结果:
图6.2
6.1.1.3网格布局
网格布局把面板分成一个个的网格,你可以给出网格的行数和列数。下面是一个网格布局的例子:
importjava.awt.*;importjava.applet.Applet;
publicclassbuttonGridextendsApplet{Buttonbutton1,button2,button3,button4,button5,button6,button7,button8;
publicvoidinit(){setLayout(newGridLayout(4,2));button1=newButton("乾");button2=newButton("坤");button3=newButton("艮");button4=newButton("震");button5=newButton("坎");button6=newButton("离");button7=newButton("巽");button8=newButton("兑");add(button1);add(button2);add(button3);add(button4);add(button5);add(button6);add(button7);add(button8);}}
下面是该程序运行的结果:
图6.3
6.2按钮
6.2.1按钮事件
用户点一下按钮,就会有一个按钮事件发生。你可以通过覆盖一个applet的action成员函数来捕捉按钮事件。
publicbooleanaction(Evente,Objecto){if(e.targetinstanceofButton){system.out.println((string)o);}else{System.out.println("Non-buttonevent");}returntrue;}
6.2.2按钮类型
Java提?copy;了标准的按压式按钮,同时也提?copy;了选择式按钮和标记式按钮。
6.2.2.1选择式按钮
选择式按钮提?copy;了从几个选项中选一个选项的功能。下面是从几个市中选一个市的例子,市名放在选择式按钮中:
CityChooser=newChoice();
CityChooser.addItem("北?copy;");CityChooser.addItem("上海");CityChooser.addItem("天津");
add(CityChooser);
图6.4
6.2.2.2标记式按钮
标记式按钮的状态作为标记框事件的对象参数返回。下面是一个标记式按钮的例子:
CheckboxfillStyleButton;fillStyleButton=newCheckbox("Solid");
publicbooleanaction(Evente,Objectarg){if(e.targetinstanceofCheckbox){System.out.println("Checkbox:"+arg);}returntrue;}
图6.5
6.2.2.3按键式按钮
按键式按钮是一组按钮,用户可以选中其中一个,同时这一组中的其他按钮将被关闭。下面是一个按键式按钮的例子:publicclassCheckBoxextendsApplet{CheckboxGroupcbg;
publicvoidinit(){cbg=newCheckboxGroup();add(newCheckbox("one",cbg,true));add(newCheckbox("two",cbg,false));add(newCheckbox("three",cbg,false));}}
图6.6
6.2.3自包含按钮
Java语言的面向对象特性使我们能够创建完全自包含的按钮。在自包含按钮里,你可以在?copy;展按钮类里建立事件控制函数。下面是一个自包含按钮的例子:
importjava.awt.*;importjava.applet.Applet;
classokButtonextendsButton{
publicokButton(){setLabel("Ok");}
publicbooleanaction(Evente,Objectarg){System.out.println("OKButton");returntrue;}}