实验4 图形用户界面设计
- 格式:doc
- 大小:110.50 KB
- 文档页数:4
1
实验四 图形用户界面设计
一、实验目的
1、了解图形用户界面的基本组件、窗口、按钮、文本框、选择框、滚动条等的
使用方法。
2、了解如何使用布局管理器对组件进行管理。
3、掌握如何使用 Java 的事件处理机制。
二、实验要求
1、能够编写图形用户界面,使用最基本的Swing组件(JFrame、JTextField、
JTextArea、JLabel、JPanel、JButton、JOptionPane)。
2、能够针对具体界面分析其布局。
3、为界面添加事件处理。
三、实验内容
1、复习课堂上及书上的例子。
2、分析图1所示界面的布局,生成同样的界面。(考点:布局管理器)
图1 布局管理器的嵌套
3、生成一个登录界面,如图2所示。(考点:界面设计+事件处理)
实验要求:
1) 密码框的回显字符设为’*’;
2) 当用户输入的用户名与密码均为“admin”时,点“确定”按钮后程序正常
退出(利用System.exit(int)语句);
2
3) 当用户输入的用户名与密码不同为“admin”时,点“确定”按钮后弹出如
图3所示的消息框;
4) 若点击“重置”按钮,可将文本框和密码框同时清空。
实验提示:
1) 密码框为java.awt.JPasswordField类对象
public void setEchoChar(char c)
设置此 JPasswordField 的回显字符。
public char[] getPassword()
返回此 TextComponent 中所包含的文本。
2) java.lang.System类
public static void exit(int status)
终止当前正在运行的 Java 虚拟机。参数用作状态码;根据惯例,非 0
的状态码表示异常终止。
3) 对于“确定”按钮有两种处理方式,分别对应于正确与错误的用户名密
码对。
4) java.awt.event.ActionEvent类
public String getActionCommand()
返回与此动作相关的命令字符串。
public Object getSource() //从类 java.util.EventObject 继承的方法
最初发生 Event 的对象。
图3 用户名与密码不正确
时显示的消息框
图2 登录界面
4、做一个类似五子棋的游戏,并实现简单的下棋功能。(考点:界面设计+事件
3
处理)
实验要求:
1) 棋盘为10行10列,棋盘底色为黄色(也可自己设定),棋盘格子间有一定
间隙。如图4所示。
2) 本游戏为单机版,故而为了模拟双方下棋的效果,可一人下棋时显示“O”,
另一人下棋时显示“X”,以示区分并相互交替。并且,一个格子如果已经下
过棋子,则不可再改变它上的棋子,即不能再更改其上显示的字符,或者说
按钮变得不可用。如图4所示。
3) 游戏规则:当同一行或同一列或同一条对角线上有连续的五个相同棋子时判
赢。若最终棋盘满了仍未有五个相同棋子连成一线,则判输。若未有这两种
情况,则继续下棋。(注:此功能需要一定的算法设计和数据结构知识,如
果时间不足,可不做)
4) 无论最终是赢或输,都自动弹出一个消息框,并给出相应的提示,如图5和
图6所示。(注:可将本要求简化为,针对棋盘中的某两个特定格子(自己
设定),一个格子单击后弹出成功对话框,一个格子弹出失败对话框)
图4 五子棋界面
图5 赢局时的提示 图6 输局时的提示
4
本题中使用到的部分相关类及方法提示:
1) java.awt.GridLayout
GridLayout(int rows, int cols, int hgap, int vgap)
创建具有指定行数和列数的网格布局。此外,将水平和垂直间距设置为
指定值。
2) java.awt.Container
public Component add(Component comp)
将指定组件追加到此容器的尾部。
3) javax.swing.JButton
//下述三个方法均从类 javax.swing.AbstractButton 继承而来,请思考这
其中的关系。
public void setText(String text)
设置按钮的文本。
public String getText()
返回按钮的文本。
public void setEnabled(boolean b)
启用(或禁用)按钮。
public void addActionListener(ActionListener l)
将一个 ActionListener 添加到按钮中。
4) javax.swing.JOptionPane
public static void showMessageDialog(Component parentComponent,
Object message) throws HeadlessException
调出标题为 "Message" 的信息消息对话框
5) javax.swing.JDialog
public JDialog(Dialog owner, String title, boolean modal)
创建一个具有指定标题、模式和指定所有者 Dialog 的对话框。