一、实验目的:
(1)掌握文本组件、按钮和单、复选按钮组件的使用。
(2)掌握列表的使用,鼠标、键盘事件的处理。
(3)掌握布局控制的方法。
二、实验内容和要求:
(1)编写一个小程序响应鼠标事件,当鼠标事件发生时,在状态条显示相应的事件信息。
(2)完成如图所示的GUI布局管理,不需要实现功能。
(3)试设计一窗口,内含一个按钮。开始运行时,按钮显示“Click Me”字样,当按钮显示为“Click Me Again”字样,再按一次,则按钮显示“Click Me”字样,依次循环。
(4)仿照Windows 2000/XP系统提供扫雷游戏编写一个类似功能和界面的扫雷程序。
(5)编写一个建议文本编译器,参考书中图形界面。
要求:包含基本的打开、保存、新建等功能,包含菜单,能够对文本的字体类型和颜色进行设置,力求界面美观。
三、实验预习:
复习本章所学内容,思考一下问题:
(1)Java语言是跨平台的编程语言,那么图形界面如何做到跨平台?
(2)AWT有哪些组件和容器?他们各自的使用方法是什么?
(3)AWT的时间处理模型是什么?原理又如何?
(4)什么是Swing?它和AWT比有什么优点?使用上有什么区别?
四、实验步骤及结果:
(1)鼠标响应事件小程序源代码:
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
public class ShiYan08_01 implements MouseMotionListener,MouseListener,WindowListener{
private Frame frm;
private TextField tf;
public static void main(String args[]){
ShiYan08_01 two = new ShiYan08_01 ();
two.go();
}
public void go(){
frm = new Frame("三个监听器");
frm.add(new Label("拖曳鼠标"),"North");
tf = new TextField(30);
frm.add(tf,"South");
frm.addMouseMotionListener(this);
frm.addMouseListener(this);
frm.addWindowListener(this);
frm.setSize(300,200);
frm.setVisible(true);
}
public void mouseDragged(MouseEvent e){
String s = "鼠标当前坐标: X="+e.getX()+"\tY = "+e.getY();
tf.setText(s);
}
public void mouseMoved(MouseEvent e){}
public void mouseClicked(MouseEvent e){}
public void mouseEntered(MouseEvent e){
String s = "鼠标进入了";
tf.setText(s);
}
public void mouseExited(MouseEvent e){
String s = "鼠标离开了";
tf.setText(s);
}
public void mousePressed(MouseEvent e){}
public void mouseRel