实训八GUI编程练习.doc
文本预览下载声明
实训八 GUI编程练习(二)
实训性质:验证性、程序设计
实训目的
(1)掌握事件监听机制
(2)掌握ActionEvent事件的处理
(3)掌握TextEvent事件的处理
实训环境
Window XP/Sever 2003、JDK、Eclipse
实训内容
(1)英语单词拼写训练
(2)简易计算器界面
(3)操作按钮移动
实训指导
1. 英语单词拼写训练
(1)编写Java程序,窗口中有一个TextField对象和一个按钮对象,将这两个对象添加到一个面板中,然后再添加到窗口北面。
用户在TextFeild对象中输入一个单词,回车或者单机按钮,程序将创建若干个标签,其个数刚好等于单词字母个数,且每个标签上的字母刚好是单词的一个字母,但顺序不对。要求将这些标签添加到一个面板中,然后将该面板添加到窗口中心。
用户用鼠标单击一个标签后,通过按下键盘上的上、下、左、右键,交换相邻标签上的字母,使得标签的字母顺序与输入单词的顺序相同。
程序模板如下:
RondomString.java
public class RondomString
{ String str=;
public String getRondomString(String s)
{ StringBuffer strBuffer=new StringBuffer(s);
int m=strBuffer.length();
for(int k=0;km;k++)
{ int index=(int)(Math.random()*strBuffer.length());
char c=strBuffer.charAt(index);
str=str+c;
strBuffer=strBuffer.deleteCharAt(index);
}
return str;
}
}
LetterLabel.java
import java.awt.*;
import java.awt.event.*;
public class LetterLabel extends Button implements FocusListener,MouseListener
{ LetterLabel()
{ 【代码1】 //将当前对象注册为自身的焦点视器
【代码2】 //将当前对象注册为自身的标监视器
setBackground(Color.cyan);
setFont(new Font(,Font.BOLD,30));
}
public static LetterLabel[] getLetterLabel(int n)
{ LetterLabel a[]=new LetterLabel[n];
for(int k=0;ka.length;k++)
{ a[k]=new LetterLabel();
}
return a;
}
public void focusGained(FocusEvent e)
{ setBackground(Color.red);
}
public void focusLost(FocusEvent e)
{ setBackground(Color.cyan);
}
public void mousePressed(MouseEvent e)
{ requestFocus();
}
public void setText(char c)
{ setLabel(+c);
}
public void mouseReleased(MouseEvent e){}
public void mouseEntered(MouseEvent e) {}
public void mouseExited(MouseEvent e) {}
public void mouseClicked(MouseEvent e){}
}
SpellingWordFrame.java
import java.awt.*;
import java.awt.event.*;
import javax.swing.Box;
public class SpellingWordFrame extends Frame implements KeyListener,ActionListener
{ TextField inputWord;
Butto
显示全部