我的扫描仪出现问题。单击该按钮,应显示第二个文件中的文本。我让按钮工作了,但是程序直接跳到新文本文件的最后一行。由于加载时间很慢,我认为这是因为我无法关闭我的第一台扫描仪。我不认为我的布局对事情有很大帮助,因为一次会读取很多文本文件,但是将第二个类编写为内部类会使事情看起来更加复杂。
如何使第二类的扫描仪可以访问第一类(因此,使用reader.close()
)?我应该使用嵌套/内部类来启动程序吗?是否有一种更简洁的方法来启动程序,然后为扫描仪准备好以后的操作?
最后,我一直在努力符合 SSCCE,我接近了吗?谢谢你的帮助
import declarations
public class MihatteFrame extends JFrame implements ActionListener{
....
public MihatteFrame() {
area
textfield
button
}
displayText method
checkTextFieldText method
public void actionPerformed(ActionEvent e) {
try {
if (textField.getText().equals("proceed to the entrance")) {
Scanner.close();
Scanner reader2 = new Scanner(new File("(Start) Front Gate.txt"));
while (reader2.hasNextLine()) {
String line = reader2.nextLine();
displayText(line);
try {
if(!line.trim().equals("")){
Thread.sleep(1000);
}
} catch (InterruptedException e) {
}
}
} else {
while (textField.getText() == null) {
displayText("I`m sorry, could you say that again?");
}
}
} catch (IOException ioe) {
}
}
X
import declarations
class ShowIntro {
public static void main(String args[]) throws IOException {
MihatteFrame mf = new MihatteFrame();
Scanner reader = new Scanner(new File("(Start) Introduction.txt"));
while (reader.hasNextLine()) {
String line = reader.nextLine();
mf.displayText(line);
try {
if(!line.trim().equals("")){
Thread.sleep(1000);
}
} catch (InterruptedException e) {
}
}