//		TODO 复制文件		//用于判断拼写正确与否的函数
 private void ChargeSpell() {
   String word = WordTextFile.getText();
   if (word.equals(NewWord.get(index))) {
     RightAnswer.setText("恭喜回答正确");
     ChangeCard("p2");
   } else {
     RightAnswer.setText("可惜了回答错误,继续努力。正确答案为" + NewWord.get(index));
     ChangeCard("p2");
   }
 }
 //		TODO 用于删除生词的函数
 private void DeleteWord(int x) {
   String word = "";
   if (x == 1) {
     if (type == 0) {
       NewWord.remove(Subject.getText());
       word = Subject.getText();
     } else {
       word = NewWord.get(index);
       NewWord.remove(NewWord.get(index));
     }
   } else if (x == 2) {
     word = NewWord.get(index);
     NewWord.remove(NewWord.get(index));
   }
   AddWordToList();
   mark = new boolean[NewWord.size()];
   // 初始化标记数组
   for (int i = 0; i < mark.length; i++) {
     mark[i] = false;
   }
   try {
     FileReader fr = new FileReader("NewWord.txt"); // 输入流对象
     BufferedReader in = new BufferedReader(fr);
     String line = in.readLine(); // 读入一行数据
     String text = "";
     while (line != null) {
       text = text + line + "\n"; // 将数据附加到字符串变量text后
       line = in.readLine(); // 读入一行新数据
     }
     in.close(); // 关闭输入流对象
     fr.close();
     text = text.replace(word + "@", "");
     File file = new File("NewWord.txt");
     file.delete();
     File file1 = new File("NewWord.txt");
     FileWriter fw = new FileWriter("NewWord.txt"); // 创建输出流对象
     BufferedWriter out = new BufferedWriter(fw);
     out.write(text); // 将文本区内容写到指定文件中
     out.flush(); // 关闭输出流
     fw.close();
   } catch (Exception e1) {
     e1.getStackTrace();
   } finally {
     NewSpeakWord();
     if (x == 1) {
       NewPractice();
     } else if (x == 2) {
       NextSpellQuestion();
     }
   }
 }
 //		TODO 用于判断题目答案是否正确的函数
 private void Charge(int i) {
   if (type == 0) {
     if (Answer[i]
         .getText()
         .equals(wordLib.getMean(dictionary.Tree.getWordIndex(NewWord.get(index))))) {
       RightAnswer.setText("恭喜回答正确");
       ChangeCard("p2");
     } else {
       RightAnswer.setText(
           "可惜了回答错误,继续努力。正确答案为"
               + wordLib.getMean(dictionary.Tree.getWordIndex(NewWord.get(index))));
       ChangeCard("p2");
     }
   } else {
     if (Answer[i].getText().equals(NewWord.get(index))) {
       RightAnswer.setText("恭喜回答正确");
       ChangeCard("p2");
     } else {
       RightAnswer.setText("可惜了回答错误,继续努力。正确答案为" + NewWord.get(index));
       ChangeCard("p2");
     }
   }
 }
 //		TODO 复制文件		//用于生成下一个spell题目的函数
 private void NextSpellQuestion() {
   ChangeCard("p3");
   boolean flag = false;
   for (int i = 0; i < NewWord.size(); i++) {
     if (!mark[i]) flag = true;
   }
   if (!flag) {
     for (int i = 0; i < NewWord.size(); i++) {
       mark[i] = false;
     }
   }
   Random random = new Random();
   while (true) {
     index = random.nextInt(NewWord.size());
     if (!mark[index]) {
       mark[index] = true;
       break;
     }
   }
   Questionmean.setText(wordLib.getMean(dictionary.Tree.getWordIndex(NewWord.get(index))));
   WordTextFile.setText("");
   WordTextFile.requestFocus();
 }
    //		TODO 复制文件		//用于产生下一个题目的函数
    private void NewPractice() {
      ChangeCard("p1");
      boolean flag = false;
      for (int i = 0; i < NewWord.size(); i++) {
        if (!mark[i]) flag = true;
      }
      if (!flag) {
        for (int i = 0; i < NewWord.size(); i++) {
          mark[i] = false;
        }
      }
      Random random = new Random();
      while (true) {
        index = random.nextInt(NewWord.size());
        if (!mark[index]) {
          mark[index] = true;
          break;
        }
      }
      type = random.nextInt(2);
      if (type == 0) {
        Subject.setText(NewWord.get(index));
        boolean[] num = new boolean[4];
        for (int i = 0; i < 4; i++) {
          num[i] = false;
        }
        int index1 = random.nextInt(4);
        Answer[index1].setText(wordLib.getMean(dictionary.Tree.getWordIndex(NewWord.get(index))));
        num[index1] = true;
        for (int i = 0; i < 3; i++) {
          while (true) {
            index2 = random.nextInt(4);
            if (!num[index2]) break;
          }
          if (NewWord.size() < 10) {

            Answer[index2].setText(
                wordLib.getMean(
                    dictionary.Tree.getWordIndex(wordLib.getWord(random.nextInt(15000)))));
          } else {
            Answer[index2].setText(
                wordLib.getMean(
                    dictionary.Tree.getWordIndex(wordLib.getWord(random.nextInt(NewWord.size())))));
          }
          num[index2] = true;
        }
      } else {
        Subject.setText(wordLib.getMean(dictionary.Tree.getWordIndex(NewWord.get(index))));
        boolean[] num = new boolean[4];
        for (int i = 0; i < 4; i++) {
          num[i] = false;
        }
        index1 = random.nextInt(4);
        Answer[index1].setText(NewWord.get(index));
        num[index1] = true;
        for (int i = 0; i < 3; i++) {
          int index2 = 0;
          while (true) {
            index2 = random.nextInt(4);
            if (!num[index2]) break;
          }
          if (NewWord.size() < 10) {
            Answer[index2].setText(wordLib.getWord(random.nextInt(15000)));
          } else {
            Answer[index2].setText(NewWord.get(random.nextInt(NewWord.size())));
          }
          num[index2] = true;
        }
      }
    }