java 图形用户界面设计
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
实验名称:图形用户界面设计
一、实验目的
1.掌握常用图形界面组件(按钮、文本框等)对象的创建及其常用方法的使用。
如,按钮的常用方法是getLabel(),文本框的常用方法有setText(),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 显示重新输入信息
程序清单:
;
import .*;
public class PasswordVerification extends JFrame
{
JLabel userLabel;
JLabel passwordLabel;
JTextField userText;
JPasswordField passwordText;
int count=1;代码6(
new ActionListener(){ quals(userName)&&(new String(passwords))) {
(null,"欢迎您:"+userName);
(0);
}
else if(count>3)
(0);
else {
(null,()+"请输入正确信息");
}
}
}
});
(userLabel);
(userText);
(passwordLabel);
(passwordText);
setSize(240,100);
setVisible(true);
}
public static void main(String[] args)
{
PasswordVerification pv=new PasswordVerification();
;
}
}
五、实验数据及处理
import .*;
import .*;
public class PasswordVerification extends JFrame
{
JLabel userLabel;
JLabel passwordLabel;
JTextField userText;
JPasswordField passwordText;
int count=1;quals(userName)&&(new String(passwords))) {
(null,"欢迎您:"+userName);
(0);
}
else if(count>3)
(0);
else {
(null,()+"请输入正确信息");
}
}
}
});
(userLabel);
(userText);
(passwordLabel);
(passwordText);
setSize(240,100);
setVisible(true);
}
public static void main(String[] args)
{
PasswordVerification pv=new PasswordVerification();
;
}
}
运行结果:
思考:
(1)程序中第3行语句.*的作用是什么
答:添加容器类。
(2)程序actionPerformed()方法中if(e,getSource()==passwordText)的作用是什么如果去掉该条件判断,程序运行结果会发生什么变化
答:用来判断发起事件的控件是不是passwordText
(3)观察actionPerformed()方法中语句“char[] passwords=();”的作用是什么答:是使用char[] getPassword()方法返回密码框中的密码.
(4)观察程序中定义的main()方法,如果在PasswordVerification pv=new PasswordVerification();语句后,添加语句()会出现什么问题为什么
答:程序打开后就会自动关闭。
因为在创建PasswordVerification对象之后就触发的().
(5)从给定程序的运行结果看,密码输入的回显字符是“*”,如果把回显字符换成“#”,该如何处理
答:密码框课用setEchoChar(’#’)来改变回显符为#。
添加语句(“#”)
(6)如果要求在信息输入错误处理中,一旦输入完密码信息,用户输入框和密码输入框可以清空,请将上述程序修改,使之实现功能。
import .*;
import .*;
public class PasswordVerification extends JFrame
{
JLabel userLabel;
JLabel passwordLabel;
JTextField userText;
JPasswordField passwordText;
int count=1;quals(userName)&&(new String(passwords)))
{
(null,"欢迎您:"+userName);
(0);
}
else if(count>3)
(0);
else {
(null,()+"请输入正确信息");
("");
("");
}
}
}
});
(userLabel);
(userText);
(passwordLabel);
(passwordText);
setSize(240,100);
setVisible(true);
}
public static void main(String[] args)
{
PasswordVerification pv=new PasswordVerification();
;
}
}
六、实验结论及问题分析
1.在上机编写程序时,不仅要调试出来结果,更重要的是要把算法彻底搞清楚。
2.那些触发事件的组件要增加监听器,监听器是一个对象,该对象所在的类要实现事件接口。
3.按钮可用一个Button的数组来表示.。