⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 wordmainclass.java

📁 随机显示一组能构成英文单词的字母
💻 JAVA
字号:
//英语单词拼写训练 
import java.awt.*; 
import java.awt.event.*; 
import javax.swing.Box;   
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; 
   } 
} 
class LetterLabel extends Label implements FocusListener,MouseListener 
{   LetterLabel() 
   {   addFocusListener(this);//将当前对象注册为自身的焦点视器 
       addMouseListener(this);//将当前对象注册为自身的标监视器 
       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) 
   {   setText(""+c); 
   } 
   public void mouseReleased(MouseEvent e){} 
   public void mouseEntered(MouseEvent e){} 
   public void mouseExited(MouseEvent e){} 
   public void mouseClicked(MouseEvent e){} 
} 
  
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); 
   int x=0;
   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++) 
         { label[k].addKeyListener(this); //将当前窗口注册为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(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();
            x=x+1;
            
         } 
      }  
      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();
             x=x+1;
           
         } 
      } 
      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("恭喜你,你成功了,移动了"+x+"次"); 
         for(int k=0;k<label.length;k++) 
         {   label[k].removeKeyListener(this); 
            label[k].removeFocusListener(label[k]); 
            label[k].setBackground(Color.green);
             x=0; 
         }  
         inputWord.requestFocus();  
      } 
   } 
} 
 
public class WordMainClass 
{   public static void main(String args[]) 
   {   new SpellingWordFrame(); 
   } 
} 
 
 

 
 
  

 
 
 

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -