请大家帮帮我,我用 java-swing 创建了一个记事本。但我有一个问题。每当我使用 Action 事件(替换、查找)时,程序都会将其显示在屏幕上,而我再次使用 Action 事件时,它会在屏幕上显示另一个事件,但不会关闭旧的事件。
private void replaceController(MainForm mainForm) {
mainForm.getReplace().addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
ReplaceForm replaceForm = new ReplaceForm(mainForm, false);
replaceForm.setVisible(true);
replaceForm.getBtnReplace().setEnabled(false);
replaceForm.getBtnReplaceAll().setEnabled(false);
ReplaceController replaceController = new ReplaceController();
replaceController.checkEmptyReplace(replaceForm);
replaceController.replace(mainForm, replaceForm);
replaceController.f(mainForm, replaceForm);
replaceController.replaceAll(mainForm, replaceForm);
replaceController.cancelReplace(replaceForm);
}
});
}
最佳答案
关注default close operation您应用于顶级 JFrame 或 JDialog。
如果您希望框架只是隐藏而不被丢弃,请使用HIDE_ON_CLOSE
。当您希望它再次显示在屏幕上时,请将其设置为visible
。这意味着您需要框架的唯一实例。
如果您希望将其释放(看起来像这样,因为每次调用操作时都会构造一个新的),请使用DISPOSE_ON_CLOSE
。然后每次用户关闭框架时它都会被销毁。
关于java - 在打开新的 java swing 之前关闭旧的对话框,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58408650/