所以我有一个摆动应用程序,其中一个按钮打开一个窗口。这很简单,打开它我使用:
private static logPicker logWindow;
static boolean logViewerOpen = false;
if (!logViewerOpen) {
logWindow = new logPicker();
logWindow.frmOpenLog.setVisible(true);
logViewerOpen = true;
}
else {
logWindow.frmOpenLog.requestFocus();
}
我还有一个窗口侦听器可以知道查看器何时关闭:
frmOpenLog.addWindowListener(new WindowAdapter() {
@Override
public void windowClosing(WindowEvent arg0) {
indexPage.logViewerOpen = false;
frmOpenLog.dispose();
}
});
我这样做是因为我想跟踪窗口是否已经打开,因为如果是,那么我必须更新信息。我打开的窗口有一个日志列表,用户可以双击该列表来查看有关该日志的信息。现在的问题是,当用户双击列表时,无论我打开和关闭该窗口多少次都会调用它。示例:我打开日志选择器窗口,然后将其关闭。我再次打开它并双击我要查看的日志,它将打开其中的 2 个。.doClick()
我在“打开日志”按钮上双击简单地做一个。奇怪的是,当我使用按钮打开日志时,它并没有这样做。它只会打开一次日志。这是双击事件和打开日志按钮的代码。
@Override
public void mouseClicked(MouseEvent arg0) {
if (arg0.getClickCount() == 2) {
btnOpenLog.doClick();
}
}
btnOpenLog.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
logViewer window = new logViewer(log.getSelectedValue());
window.frmLogViewer.setVisible(true);
}
});