这是我在这里提出的第一个问题,因此任何有关我提出此问题的方式的反馈都会有所帮助。
我正在编写代码,在 JFrame 关闭时将信息保存到文本文件中。当我最初编写侦听器时,Intellij 放入了额外的代码行(super.windowClosing(e)),因为最初出现错误(无法解析方法“add(WindowAdapter)”),所以我按下了修复按钮,该按钮将在那一行中,但它也导致弹出一个错误,指出它缺少分号。
//线程 4
Thread t4 = new Thread(() -> frame.add(new WindowAdapter() {
@Override
public void windowClosing(WindowEvent e) {
super.windowClosing(e) \* ; */ {
try {
FileWriter writer = new FileWriter("Registry.txt");
for (String key : loginRegistry.keySet()) {
//write key to file
for (String innerKey : loginRegistry.get(key).keySet()) {
//write innerKey to file
//write get(innerKey) to file
}
}
writer.close();
frame.dispose();
System.exit(0);
}catch(IOException x){x.printStackTrace();}
}
}
}));
此代码段应该将一个映射(包含字符串和映射(包含字符串和字符数组))写入文件中,以便程序再次运行时可以读取保存的信息。但程序不会运行 do 来解决该错误。
frame.add(new WindowAdapter()
是无效调用,因为 JFrame
没有 add(WindowListener)
方法,相反,您应该使用 JFrame#addWindowListener
方法,例如...
frame.addWindowListener(new WindowAdapter() {
@Override
public void windowClosing(WindowEvent e) {
System.out.println("Window is closing");
}
});