📄 7654321.java
字号:
英语单词拼写训练
1.答案:
【代码1】: addFocusListener(this);
【代码2】: addMouseListener(this);
【代码3】: label[k].addKeyListener(this);
【代码4】: e.getKeyCode()==KeyEvent.VK_LEFT
【代码5】: e.getKeyCode()==KeyEvent.VK_RIGHT
2.模板代码
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;k<m;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;k<a.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;
Button button;
LetterLabel label[];
Panel northP,centerP;
Box wordBox;
String hintMessage="用鼠标单击字母,按左右箭头交换字母,将其排列成所输入的单词";
Label messaageLabel=new Label(hintMessage);
String word="";
SpellingWordFrame()
{ inputWord=new TextField(12);
button=new Button("确定");
button.addActionListener(this);
inputWord.addActionListener(this);
northP=new Panel();
northP.add(new Label("输入一个英文单词:"));
northP.add(inputWord);
northP.add(button);
centerP=new Panel();
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();
addWindowListener(new WindowAdapter()
{ public void windowClosing(WindowEvent e)
{ System.exit(0);
}
}
);
}
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++)
{ 【代码3】 //将当前窗口注册为label[k]的键盘监视器
label[k].setText(""+randomWord.charAt(k));
wordBox.add(label[k]);
}
validate();
inputWord.setText(null);
label[0].requestFocus();
}
}
public void keyPressed(KeyEvent e)
{ LetterLabel sourceLabel=(LetterLabel)e.getSource();
int index=-1;
if(【代码4】) //判断按下的是否是←键)
{ 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(【代码5】) //判断按下的是否是→键
{ 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.green);
}
inputWord.requestFocus();
}
}
}
WordMainClass.java
public class WordMainClass
{ public static void main(String args[])
{ new SpellingWordFrame();
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -