实验6JavaAWT及Swing应用 联系客服

发布时间 : 星期一 文章实验6JavaAWT及Swing应用更新完毕开始阅读b59bc7bf9fc3d5bbfd0a79563c1ec5da51e2d646

实验6 Java AWT及Swing应用

实验内容

(1)按钮有序排列 (2)密码验证问题

(3)名片录入管理界面设计 (4)文字字体设计窗体

1、按钮有序排列

实验目的:

(1) 了解 GUI 的概念 ;

(2) 了解 java.awt 包和 javax.swing 包, 以及比较它们具有的同性质的组件的异同; (3) 掌握和运用 Java 的基本GUI 组件, 了解它们的特点。 实验任务:

本实验要求定义按钮若干让它们按照从左向右的顺序依次排列, 显示5个带图标的按钮。

实验步骤:

在 Eclipse 中新建一个 Chapter11项目 , 按照下列要求完成实验。 练习: 调试和运行程序 ButtonCounter.java;

要求: 在当前项目Chapter11中, 新建一个文件ButtonCounter.java, 将程序清单3-1 中的程序输入并保存。该程序可以定义按钮若干使它们按照从左向右的顺序依次排列, 显示5个带图标的按钮 , 运行结果如图1所示。阅读和分析程序ButtonCounter.java, 调试编译并运行该程序。

图1

程序清单 3-1 ButtonCounter.java //ButtonCounter.java import javax.swing.*; import java.awt.*;

public class ButtonCounter extends JFrame { public ButtonCounter() { super(\显示按钮窗口\

1

ImageIcon Icon = new ImageIcon(\ JButton jbt1 = new JButton(\按钮\ JButton jbt2 = new JButton(\按钮\ JButton jbt3 = new JButton(\按钮\ JButton jbt4 = new JButton(\按钮\ JButton jbt5 = new JButton(\按钮\

JPanel p1 = new JPanel(); p1.add(jbt1);

JPanel p2 = new JPanel(); p2.add(jbt2);

JPanel p3 = new JPanel(); p2.add(jbt3);

JPanel p4=new JPanel(); p4.add(jbt4);

JPanel p5=new JPanel(); p5.add(jbt5);

getContentPane().setLayout(new FlowLayout()); getContentPane().add(p1); getContentPane().add(p2); getContentPane().add(p3); getContentPane().add(p4); getContentPane().add(p5); }

public static void main(String[] args) { // Create a frame and set its properties JFrame frame = new ButtonCounter(); frame.pack();

frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); frame.setVisible(true); } } 思考

(1) 在程序的 main() 方法中有语句Frame.pack(), 该方法的作用是什么 ? 该方法的作用是自动确定Frame的大小。

(2) 程序中语句Frame.setDefaultCloseOperation(JFrame.EXIT-ON-CLOSE); 的作用是什么 ? 去掉该语句 , 程序会出现怎样的运行结果 ? 该语句的作用是使执行程序结束。去掉该语句,关闭窗口,但是命令提示符并没有正常结束。需要按Ctrl+C才行。

(3) 如果将程序中的语句 getContentPane().setLayout(new FlowLayout()); 去掉 , 程序的运行结果会发生变化吗 ? 如果不发生变化是什么原因 ? 如果发生变化 , 会出现什么现象 ? 请解释原因。

程序的运行结果会发生变化,只出现一个按钮。因为去掉该语句后,布局管理器被取消了,只有调用每个组件的相关方法,才能为这些组件在容器中一一定位。

2

(4) 如果将程序中的按钮组件 jbtl 换成 java.awt 包中的 Button 组件对象 , 换过后的组件和原来的 JButton 在外观上会出现什么不同 ?

颜色不同,Button 组件颜色是灰色,同JPanel相同。

注意 : 在使用 Eclipse 时 , 如果在运行的时候希望能调用一些图片 , 可以将图片放在定义该项目 Chapterll 下的目录 image 中 , 如果没有该目录 , 需要用户自己定义一个 image 目录。在编写程序的时候 , 就可以通过相对路径 “image/xxx.gif\等形式装载图片。

2、密码验证问题

实验目的 :

(l) 进一步了解和掌握 javax.swing 包中的常用 GUI 组件 ;

(2) 比较 Swing 包中的 JTextField 和 JPasswordField 在使用中的异同 ; (3) 初步了解和运用事件处理机制和 Action 事件的处理。 实验任务:

编写一个 Java 程序 , 实现用户根据自己的密码进入界面, 如果用户输入信息正确 , 则输出 “ 欢迎×××\?2X户 ”, 否则用户还可以尝试两次 , 如果尝试阶段输入信息错误, 则输出 “ 请输入正确的信息 ”, 如果尝试失败 , 用户则退出。 实验步骤 :

打开 Eclipse, 打开一个已有项目如 Chapter3, 在该项目下完成如下练习。 练习: 密码验证

要求: 在当前项目如Chapter3下, 新建一个文件PasswordVerification.java, 将程序清单 3-2 中的程序输入并保存。要求该程序完成如下功能 : 用户根据自己的密码进入界面 , 如果用户输入信息正确 , 则输出 “ 欢迎××× ”, 否则用户还可以尝试两次 , 如果尝试阶段输入信息错误 , 则输出 “请输入正确的信息” , 如果尝试失败 , 用户则退出。调试并编译程序 PasswordVerification.java, 运行该程序 , 运行结果如图2 、图 3和图 4所示 , 请将该程序中的代码1~代码7补充完整。

图2

图3

3

图4

程序清单 3-2 PasswordVerification.java //PasswordVerification.java import javax.swing.*; import java.awt.event.*; import java.awt.*;

public class PasswordVerification extends JFrame implements ActionListener{ JLabel userLabel;//定义用户标签提示

JLabel passwordLabel;//定义密码标签提示 JTextField userText;//定义用户文本框

JPasswordField passwordText;//定义密码文本框 int count=1;//统计输入信息的次数 public PasswordVerification() { super(\请输入信息\

Container container=getContentPane();//得到容器对象container; container.setLayout(new FlowLayout());//设置默认布局 userLabel=new JLabel(\用户名\创建用户标签 passwordLabel=new JLabel(\密 码\创建密码标签 userText=new JTextField();//创建用户文本输入框

passwordText=new JPasswordField();//创建密码输入文本框 passwordText.addActionListener(this);//注册事件监听者; container.add(userLabel); container.add(userText);

container.add(passwordLabel); container.add(passwordText); setSize(240,100); setVisible(true); }

public void actionPerformed(ActionEvent e){//事件处理

String userName=new String(\陈三\假设为正确的用户名; String password=new String(\假设为正确的密码; if(e.getSource()==passwordText){ count++;

char[] passwords=passwordText.getPassword();

if(userText.getText().equals(userName)&&password.equals(new String(passwords))) {

JOptionPane.showMessageDialog(null, \欢迎您:\

4