我想添加一个关闭BufferedWriter的ActionListener。总的来说,我的程序将变量值保存到文件中。这些值被读入在此Java GUI中运行的python脚本中。但是,我无法使(按钮单击)ActionListener工作。我只能得到一个WindowListener(用于帧关闭)。
对于WindowListener,我使用以下代码
frame.addWindowListener(new WindowAdapter() {
public void windowClosing(WindowEvent e) {
try {
bufferFileWriter.close();
} catch (IOException ioe) {
ioe.printStackTrace();
}
}
});
对于给出错误的ActionListener:java.io.ioexception流已关闭,我使用以下代码:
setVarFileBtn.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
// Save the variable values when VarFileBtn pressed
try {
bufferFileWriter.close();
} catch (IOException ioe) {
ioe.printStackTrace();
}
}
});
我应该使用什么代码让侦听器识别按钮setVarFileBtn,然后关闭BufferedWriter?我是否缺少某些Java Swing代码概念,以便将BufferedWriter写入保存到文件中?
答案 0 :(得分:1)
我解决了这个问题。我的错误发生是因为我有两个ActionListener用于同一个按钮。未示出的监听器用于写入变量值。一旦我将其添加到第一个监听器:
try {
bufferFileWriter.close();
} catch (IOException ioe) {
ioe.printStackTrace();
}
将变量值写入我的文件。
答案 1 :(得分:0)
要获取正在按下的按钮,您需要从事件中获取操作命令。你可以这样做:
new ActionListener() {
public void actionPerformed(ActionEvent e)
{
if (e.getActionCommand().equals("Save")) {
// perform save code
}
}
}
"Save"
是JButton
的名称。