基本信息
源码名称:英语单词拼写训练.doc
源码大小:0.04M
文件格式:.doc
开发语言:Java
更新时间:2020-12-04
友情提示:(无需注册或充值,赞助后即可获取资源下载链接)
嘿,亲!知识可是无价之宝呢,但咱这精心整理的资料也耗费了不少心血呀。小小地破费一下,绝对物超所值哦!如有下载和支付问题,请联系我们QQ(微信同号):813200300
本次赞助数额为: 2 元×
微信扫码支付:2 元
×
请留下您的邮箱,我们将在2小时内将文件发到您的邮箱
源码介绍
窗口中有一个TextField对象和一个按钮对象,将这两个对象添加到一个面板中,然
后将该面板添加到窗口的上面。
用户在 TextField对象中输入一个英文单词,然后按Enter键或单击“确定”按钮,
程序将创建若干个不可编辑的文本框,每个文本框随机显示英文单词中的一个字母。
要求将这些文本框按一行添加到一个面板中,然后将该面板添加到窗口的中心。
用户用鼠标单击一个文本框后,通过按下键盘上的“→”和“,”键交换相邻文本
框中的字母,使得这些文本框中字母的排列顺序和英文单词中字母的顺序相同。
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class SpellingWordFrame extends JFrame implements KeyListener,ActionListener {//键盘和事件监视器
JTextField inputWord;//文本框
JButton button;//按钮
LetterLabel label[];//文本框
JPanel northP, centerP;//中间容器,默认FlowLayout布局
Box wordBox;
String hintMessage="用鼠标单击字母,按左右箭头交换字母,将其排列成所输入的单词";
JLabel messaageLabel=new JLabel(hintMessage) ;//标签
String word=" " ;
SpellingWordFrame(){//继承BorderLayout布局
inputWord=new JTextField (12);//列数为12
button=new JButton("确定");
button.addActionListener(this);
inputWord.addActionListener (this);
northP=new JPanel();//创建中间容器
northP.add (new JLabel("输入单词:"));//加标签
northP.add(inputWord) ;//加文本框
northP.add(button);//加按钮
//
centerP=new JPanel ();
wordBox=Box.createHorizontalBox();//实例化
centerP.add (wordBox);
add(northP,BorderLayout.NORTH);
add(centerP,BorderLayout.CENTER);
add (messaageLabel,BorderLayout.SOUTH);
setBounds (100,100,350,180);//坐标,长,高
setVisible(true) ;//可见
validate();// swing 中的validate()方法,确保组件具有有效的布局。
setDefaultCloseOperation (DISPOSE_ON_CLOSE);//隐藏当前窗口并释放资源
}
public void actionPerformed (ActionEvent e){//事件源处罚后
word=inputWord.getText();
int n=word.length ();
RondomString rondom=new RondomString();
String randomWord=rondom.getRondomString (word);
wordBox.removeAll();//删除所有的元素
messaageLabel .setText(hintMessage) ;
if (n>0){
label=LetterLabel.getLetterLabel(n);
for(int k=0;k<label.length; k ){
label[k].setText("" randomWord.charAt(k));
wordBox.add ( label[k]);
label[k].addKeyListener(this);//将当前窗口注册为label[k]的键盘监视器
}
validate();
inputWord.setText(null);
label[0].requestFocus();
}
}
public void keyPressed(KeyEvent e){
LetterLabel sourceLabel=(LetterLabel)e.getSource();//e.getSource()获得事件源
int index=-1;
if(e.getKeyCode()==KeyEvent.VK_LEFT){//判断按下的是否是“左箭头”键
for(int k=0;k<label.length; k ){
if(label[k]==sourceLabel){
index=k;
break;
}
}
if(index!=0){//交换文本框中的字母
String temp=label[index].getText();
label[index].setText(label[index-1].getText());
label[index-1].setText (temp);
label[index-1].requestFocus () ;
}
}
else if(e.getKeyCode()==KeyEvent.VK_RIGHT){//判断按下的是否是“右箭头”键
for(int k=0;k<label.length; k ){
if(label[k]==sourceLabel){
index=k;
break;
}
}
if(index!=label.length-1){
String temp=label [index] .getText();
label[index].setText (label [index 1].getText());
label[index 1].setText(temp) ;
label[index 1].requestFocus ();
}
}
validate();
}
public void keyTyped(KeyEvent e){}//按下和释放
public void keyReleased (KeyEvent e){//释放
String success="";
for(int k=0;k<label.length; k ){
String str=label[k].getText();
success=success str;
}
if(success.equals (word)) {
messaageLabel.setText("恭喜你,你成功了");
for(int k=0;k<label . length; k ){
label[k].removeKeyListener (this);
label[k].removeFocusListener (label[k]);
label[k].setBackground(Color.white);
}
inputWord.requestFocus();
}
}
}
窗口中有一个TextField对象和一个按钮对象,将这两个对象添加到一个面板中,然
后将该面板添加到窗口的上面。
用户在 TextField对象中输入一个英文单词,然后按Enter键或单击“确定”按钮,
程序将创建若干个不可编辑的文本框,每个文本框随机显示英文单词中的一个字母。
要求将这些文本框按一行添加到一个面板中,然后将该面板添加到窗口的中心。
用户用鼠标单击一个文本框后,通过按下键盘上的“→”和“,”键交换相邻文本
框中的字母,使得这些文本框中字母的排列顺序和英文单词中字母的顺序相同。
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class SpellingWordFrame extends JFrame implements KeyListener,ActionListener {//键盘和事件监视器
JTextField inputWord;//文本框
JButton button;//按钮
LetterLabel label[];//文本框
JPanel northP, centerP;//中间容器,默认FlowLayout布局
Box wordBox;
String hintMessage="用鼠标单击字母,按左右箭头交换字母,将其排列成所输入的单词";
JLabel messaageLabel=new JLabel(hintMessage) ;//标签
String word=" " ;
SpellingWordFrame(){//继承BorderLayout布局
inputWord=new JTextField (12);//列数为12
button=new JButton("确定");
button.addActionListener(this);
inputWord.addActionListener (this);
northP=new JPanel();//创建中间容器
northP.add (new JLabel("输入单词:"));//加标签
northP.add(inputWord) ;//加文本框
northP.add(button);//加按钮
//
centerP=new JPanel ();
wordBox=Box.createHorizontalBox();//实例化
centerP.add (wordBox);
add(northP,BorderLayout.NORTH);
add(centerP,BorderLayout.CENTER);
add (messaageLabel,BorderLayout.SOUTH);
setBounds (100,100,350,180);//坐标,长,高
setVisible(true) ;//可见
validate();// swing 中的validate()方法,确保组件具有有效的布局。
setDefaultCloseOperation (DISPOSE_ON_CLOSE);//隐藏当前窗口并释放资源
}
public void actionPerformed (ActionEvent e){//事件源处罚后
word=inputWord.getText();
int n=word.length ();
RondomString rondom=new RondomString();
String randomWord=rondom.getRondomString (word);
wordBox.removeAll();//删除所有的元素
messaageLabel .setText(hintMessage) ;
if (n>0){
label=LetterLabel.getLetterLabel(n);
for(int k=0;k<label.length; k ){
label[k].setText("" randomWord.charAt(k));
wordBox.add ( label[k]);
label[k].addKeyListener(this);//将当前窗口注册为label[k]的键盘监视器
}
validate();
inputWord.setText(null);
label[0].requestFocus();
}
}
public void keyPressed(KeyEvent e){
LetterLabel sourceLabel=(LetterLabel)e.getSource();//e.getSource()获得事件源
int index=-1;
if(e.getKeyCode()==KeyEvent.VK_LEFT){//判断按下的是否是“左箭头”键
for(int k=0;k<label.length; k ){
if(label[k]==sourceLabel){
index=k;
break;
}
}
if(index!=0){//交换文本框中的字母
String temp=label[index].getText();
label[index].setText(label[index-1].getText());
label[index-1].setText (temp);
label[index-1].requestFocus () ;
}
}
else if(e.getKeyCode()==KeyEvent.VK_RIGHT){//判断按下的是否是“右箭头”键
for(int k=0;k<label.length; k ){
if(label[k]==sourceLabel){
index=k;
break;
}
}
if(index!=label.length-1){
String temp=label [index] .getText();
label[index].setText (label [index 1].getText());
label[index 1].setText(temp) ;
label[index 1].requestFocus ();
}
}
validate();
}
public void keyTyped(KeyEvent e){}//按下和释放
public void keyReleased (KeyEvent e){//释放
String success="";
for(int k=0;k<label.length; k ){
String str=label[k].getText();
success=success str;
}
if(success.equals (word)) {
messaageLabel.setText("恭喜你,你成功了");
for(int k=0;k<label . length; k ){
label[k].removeKeyListener (this);
label[k].removeFocusListener (label[k]);
label[k].setBackground(Color.white);
}
inputWord.requestFocus();
}
}
}