swing是什么

更新时间:2022-11-27 14:39:50 阅读: 评论:0


2022年11月27日发(作者:绩效评估系统)

实验名称:图形用户界面设计

一、实验目的

1.掌握常用图形界面组件(按钮、文本框等)对象的创建及其常用方法的使用。如,

按钮的常用方法是getLabel(),文本框的常用方法有tText(),getText()等。

2.掌握常用的布局管理类CardLayou,BorderLayout,FlowLayout,GridLayout的使用策略。

能够将它们联合起来使用。

3.掌握java语言的事件处理。每个事件对应的接口(或适配器类)是什么,每个接口

有哪些方法,如何进行委托处理,被委托者必须做什么。

二、实验环境(软件、硬件环境)

PC机JDK包

三、实验原理

通过图形用户界面(GUI),用户和程序之间可以方便地进行交互。包中的组件

类可以帮助我们完整界面的设计。包的JComponent类是包中的Container

类的一个直接子类、Component类的间接子类。包中的JFrame类和JDialog类分

别是包中Frame类和Dialog类的直接子类、Window类的间接子类。在学习GUI

编程时,必须很好地理解并掌握两个概念:容器类和组件类,必须很好地掌握java的事件

处理机制。

四、实验容及步骤

实验容:密码验证问题。

编写一个Java程序,实现用户根据自己的密码进入界面,如果用户输入信息正确,则输出

“欢迎XXX用户”,否则用户还可以尝试两次,如果尝试阶段输入信息错误,则输出“请

...

....

输入正确的信息”,如果尝试失败,用户则退出。

调试并编译程序,运行该程序,运行结果如图8-1、图8-2、图8-3

和图8-4所示,请将程序中的代码1~代码7补充完整。

图8-1运行结果,输入正确信息图8-2显示欢迎信息

图8-3运行结果,输入错误信息图8-4显示重新输入信息

程序清单:

//

.*;

.*;

.*;

publicclassPasswordVerificationextendsJFrame

{

JLabelurLabel;

JLabelpasswordLabel;

JTextFieldurText;

JPasswordFieldpasswordText;

intcount=1;//统计输入信息的次数

publicPasswordVerification()

{

super("请输入信息");

Containerc=代码1;//得到容器对象container

out(newFlowLayout());//设置默认布局

urLabel=代码2//创建用户标签

passwordLabel=代码3;//创建密码标签

urText=代码4//创建用户文本输入框

passwordText=代码5//创建密码输入文本框

passwordText.代码6(

...

....

newActionListener(){//注册事件监听者

publicvoidactionPerformed(代码7)//事件处理

{

StringurName=newString("三");//假设为正确的用户名

Stringpassword=newString("12345678");//假设为正确的密码

if(rce()==passwordText)

{

count++;

char[]passwords=sword();

if(t().equals(urName)&&(newString(passwords)))

{

ssageDialog(null,"欢迎您:"+urName);

(0);

}

elif(count>3)

(0);

el{

ssageDialog(null,t()+"请输入正确信息");

}

}

}

});

(urLabel);

(urText);

(passwordLabel);

(passwordText);

tSize(240,100);

tVisible(true);

}

publicstaticvoidmain(String[]args)

{

PasswordVerificationpv=newPasswordVerification();

aultCloOperation(_ON_CLOSE);

}

}

...

....

五、实验数据及处理

.*;

.*;

.*;

publicclassPasswordVerificationextendsJFrame

{

JLabelurLabel;

JLabelpasswordLabel;

JTextFieldurText;

JPasswordFieldpasswordText;

intcount=1;//统计输入信息的次数

publicPasswordVerification()

{

super("请输入信息");

Containerc=getContentPane();//得到容器对象container

out(newFlowLayout());//设置默认布局

urLabel=newJLabel("用户:");//创建用户标签

passwordLabel=newJLabel("密码:");//创建密码标签

urText=newJTextField(5);//创建用户文本输入框

passwordText=newJPasswordField(5);//创建密码输入文本框

ionListener(newActionListener()

{//注册事件监听者

...

....

publicvoidactionPerformed(ActionEvente)//事件处理

{

StringurName=newString("三");//假设为正确的用户名

Stringpassword=newString("12345678");//假设为正确的密码

if(rce()==passwordText)

{

count++;

char[]passwords=sword();

if(t().equals(urName)&&(new

String(passwords)))

{

ssageDialog(null,"欢迎您:"+urName);

(0);

}

elif(count>3)

(0);

el{

ssageDialog(null,t()+"请输入正确

信息");

}

}

...

....

}

});

(urLabel);

(urText);

(passwordLabel);

(passwordText);

tSize(240,100);

tVisible(true);

}

publicstaticvoidmain(String[]args)

{

PasswordVerificationpv=newPasswordVerification();

aultCloOperation(_ON_CLOSE);

}

}

运行结果:

...

....

思考:

(1)程序中第3行语句.*的作用是什么?

答:添加容器类。

(2)程序actionPerformed()方法中if(e,getSource()==passwordText)的作用是什么?如果去

掉该条件判断,程序运行结果会发生什么变化?

答:用来判断发起事件的控件是不是passwordText

(3)观察actionPerformed()方法中语句“char[]passwords=sword();”

的作用是什么?

答:是使用char[]getPassword()方法返回密码框中的密码.

(4)观察程序中定义的main()方法,如果在PasswordVerificationpv=new

PasswordVerification();语句后,添加语句()会出现什么问题?为什么?

答:程序打开后就会自动关闭。因为在创建PasswordVerification对象之后就

触发的().

(5)从给定程序的运行结果看,密码输入的回显字符是“*”,如果把回显字符换成“#”,

该如何处理?

答:密码框课用tEchoChar(’#’)来改变回显符为#。

添加语句oChar(“#”)

(6)如果要求在信息输入错误处理中,一旦输入完密码信息,用户输入框和密码输入框

可以清空,请将上述程序修改,使之实现功能。

.*;

.*;

.*;

publicclassPasswordVerificationextendsJFrame

{

JLabelurLabel;

JLabelpasswordLabel;

JTextFieldurText;

JPasswordFieldpasswordText;

intcount=1;//统计输入信息的次数

publicPasswordVerification()

{

...

....

super("请输入信息");

Containerc=getContentPane();//得到容器对象container

out(newFlowLayout());//设置默认布局

urLabel=newJLabel("用户:");//创建用户标签

passwordLabel=newJLabel("密码:");//创建密码标签

urText=newJTextField(5);//创建用户文本输入框

passwordText=newJPasswordField(5);//创建密码输入文本框

ionListener(newActionListener()

{//注册事件监听者

publicvoidactionPerformed(ActionEvente)//事件处理

{

StringurName=newString("三");//假设为正确的用户名

Stringpassword=newString("12345678");//假设为正确的密码

if(rce()==passwordText)

{

count++;

char[]passwords=sword();

if(t().equals(urName)&&(new

String(passwords)))

{

ssageDialog(null,"欢迎您:"+urName);

(0);

}

elif(count>3)

(0);

el{

ssageDialog(null,t()+"

请输入正确信息");

t("");

t("");

}

}

}

});

(urLabel);

(urText);

(passwordLabel);

(passwordText);

tSize(240,100);

tVisible(true);

}

publicstaticvoidmain(String[]args)

...

....

{

PasswordVerificationpv=newPasswordVerification();

aultCloOperation(_ON_CLOSE);

}

}

六、实验结论及问题分析

1.在上机编写程序时,不仅要调试出来结果,更重要的是要把算法彻底搞清楚。

2.那些触发事件的组件要增加监听器,监听器是一个对象,该对象所在的类要实现事

件接口。

3.按钮可用一个Button的数组来表示.

本文发布于:2022-11-27 14:39:50,感谢您对本站的认可!

本文链接:http://www.wtabcd.cn/fanwen/fan/90/31591.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

上一篇:趟浑水
标签:swing是什么
相关文章
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2022 Comsenz Inc.Powered by © 专利检索| 网站地图