JAVA图形用户界面实验教程

  • 格式:doc
  • 大小:108.00 KB
  • 文档页数:8

实验五图形用户界面实验目的1.了解图形用户界面的概念;2.了解AW T和Sw in g的基本体系结构;3.掌握几种布局管理器的使用方法;4.掌握Ja v a的事件处理机制;5.掌握图形用户界面的构建。

实验要求1.掌握在容器中添加组件的方法,掌握使用布局管理器对组件进行管理的方法。

2.理解Ja va 的事件处理机制,掌握为不同组件编写事件处理程序的方法。

3.掌握编写独立运行的窗口界面的方法。

4.了解Ja va S wi ng 组件的使用方法。

5.了解对话框的使用方法。

6.熟练使用图形类Gr a ph ic s。

实验内容(一)建立独立运行的窗口界面并使用匿名类最常使用的包含组件的容器是窗口,在Ja va 中窗口由F r am e 类生成。

编写SY5_1.ja v a程序文件,程序功能:创建一个具有关闭功能的空白窗口。

源代码如下:i m po rt j av a.aw t.*;i m po rt j av a.aw t.e v en t.*;p u bl ic c la ss S Y5_1{S Y5_1(){F r am e f=ne w Fr ame("初始窗口");f.se tS iz e(350,200);f.se tV is ib le(t rue);//为窗口添加窗口事件适配器f.ad dW in do wL is ten e r(ne w Wi nd ow Ada p te r() {//关闭窗口事件的方法p u bl ic v oi d wi ndo w Cl os in g(Wi nd owE v en t e){S y st em.e xi t(0);}};}p u bl ic s ta ti c voi d m ai n(St ri ng[] a rg s) {n e w SY5_1();}}编译并运行程序(二)创建图形用户界面图形用户界面(G UI)是为方便用户使用设计的窗口界面,在图形用户界面中用户可以看到什么就操作什么,取代了在字符方式下知道是什么后才能操作什么的方式。

组件(C o mp on en t)是构成GU I 的基本要素,通过对不同事件的响应来完成和用户的交互或组件之间的交互。

组件一般作为一个对象放置在容器(Con t ai ner)内,容器是能容纳和排列组件的对象,如Ap pl et、Pa nel(面板)、Fr ame(窗口)等。

通过容器的ad d 方法把组件加入到容器中。

编写SY5_2.ja va 程序文件,程序功能:在窗口中添加组件。

源代码如下:i m po rt j av a.aw t.*;i m po rt j av a.aw t.e v en t.*;p u bl ic c la ss S Y5_2 e xt en ds F ra me i mp le me nt s Ac tio n Li st en er {B u tt on b tn1, b tn2;T e xt Fi el d f,tf1,t f2;T e xt Ar ea A re a;S Y5_2(){s u pe r("添加组件的窗口");a d dW in do wL is te ner(ne w Wi nd ow Ad apt e r() {p u bl ic v oi d wi ndo w Cl os in g(Wi nd owE v en t e) {S y st em.e xi t(0);}});s e tS iz e(350,250);//设置窗口大小s e tL oc at io n(200,200);//设置窗口显示位置s e tF on t(ne w Fo nt("Ar ia l",F on t.PLA I N,12)); //设置字体s e tL ay ou t(ne w Flo w La yo ut());A r ea=n ew T ex tA rea(6,40);t f1=ne w Te xt Fi eld(10); t f2=n ew Te x tF ie ld(10);b t n1=n ew B ut to n("显示"); b tn2=new Bu tt on("退出");f=ne w Te xt Fi el d(20);a d d(Ar ea); a dd(ne w L ab el("用户名"));a d d(tf1); ad d(new La be l("电话"));a d d(tf2); ad d(f);ad d(bt n1); a dd(b tn2);t f1.ad dA ct io nL ist e ne r(th is); t f2.a dd Ac ti on Li st ene r(t hi s);b t n1.a dd Ac ti on Lis t en er(t hi s);b t n2.a dd Ac ti on Lis t en er(t hi s);s h ow();}p u bl ic s ta ti c voi d m ai n(S t ri ng ar g s[]){n e w SY5_2();}p u bl ic v oi d ac tio n Pe rf or me d(Ac tio n Ev en t e){i f (e.ge tS ou rc e()==b tn1)f.se tT ex t("你按下了“" + e.g et Ac t io nC om ma nd() + "”按钮");i f (e.ge tS ou rc e()==t f1)A r ea.a pp en d("用户名:"+tf1.ge tTe x t()+"\n");i f (e.ge tS ou rc e()==t f2)A r ea.a pp en d("电话:"+tf2.ge tT ext()+"\n");i f (e.ge tS ou rc e()==b tn2) {f o r (i nt i=0; i<100000000; i++);d i sp os e();//只关闭当前窗口,注销该对象}}}编译并运行程序(三)为窗口添加菜单程序功能:在窗口中添加菜单栏,在菜单栏添加菜单项,并添加下拉菜单和2级菜单,通过选择菜单项可以执行不同操作,如“打开”可打开S Y5_3类生成的窗口。

源代码如下:i m po rt j av a.aw t.*;i m po rt j av a.aw t.e v en t.*;p u bl ic c la ss S Y5_3e xt en ds F ra me i mp le me nt s Ac tio n Li st en er { P a ne l p=ne w Pa nel();B u tt on b=n ew B utt o n("退出");M e nu Ba r mb=n ew Me n uB ar(); // 以下生成菜单组件对象M e nu m1=ne w Me nu("文件");M e nu It em o pe n=new Me nu It em("打开");M e nu It em c lo se=ne w M en uI te m("关闭");M e nu It em e xi t=new Me nu It em("退出");M e nu m12=n ew M enu("编辑");M e nu It em c op y=new Me nu It em("复制");M e nu It em c ut=n ew M en uI te m("剪切");M e nu It em p as te=ne w M en uI te m("粘贴");M e nu m2=ne w Me nu("帮助");M e nu It em c on te nt=n ew M en uI te m("目录");M e nu It em i nd ex=ne w M en uI te m("索引");M e nu It em a bo ut=ne w M en uI te m("关于");S Y5_3() {s u pe r("添加菜单的窗口");s e tS iz e(350,200);a d d("S ou th",p);p.ad d(b);b.ad dA ct io nL is ten e r(th is);m1.a dd(o pe n); // 将菜单项加入到菜单m1 中m1.a dd(c lo se);m1.a dd Se pa ra to r(); //在菜单中添加分隔条m1.a dd(e xi t);o p en.a dd Ac ti on Lis t en er(t hi s); //给菜单项op en注册事件监听器e x it.a dd Ac ti on Lis t en er(t hi s);m b.a dd(m1); // 将菜单m1 加入到菜单栏mb 中m12.ad d(co py); m12.a dd(c ut); m12.a dd(p as te);m1.a dd(m12);//将m12 作为2级菜单添加到m1菜单项中m2.a dd(c on te nt); m2.a dd(i nd ex); m2.a dd Se par a to r();m2.a dd(a bo ut);m b.a dd(m2);s e tM en uB ar(m b); // 设置菜单栏为m bs h ow();// 显示组件}p u bl ic s ta ti c voi d m ai n(St ri ng ar g s[]) {n e w SY5_3();}p u bl ic v oi d ac tio n Pe rf or me d(Ac tio n Ev en t e) {i f (e.ge tA ct io nCo m ma nd()=="退出")S y st em.e xi t(0);i f (e.ge tA ct io nCo m ma nd()=="打开")n e w SY5_2();}}编译并运行程序。