// 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; } } }