防止在Java Swing中使用对话框的重复次数
答
是的,你不需要使箱子模式来做到这一点(尽管使模式是最简单的方法)。
只需像做以下
在您的会员delcarations:
private final MyDialog dialog = new MyDialog();
在您的代码:
private void showDialog() {
dialog.setVisible(true);
dialog.requestFocus(); // May be needed to bring window to front
}
这将确保只实例化箱一次。只要按下按钮,只需调用showDialog()。
答
您可以使JDialog
模式,然后父窗口将不会作出反应,直到它被关闭。
或者你可以在初始化JDialog
之前,只需按下按钮使其可见即可。将其显示两次将不会显示两次。
答
我过去用Swing做过的另一种方式是,当按下按钮时,我所做的第一件事就是禁用按钮。然后,我使用可观察模式查看子窗口,并在子窗口关闭时重新启用按钮。这种方式如果由于某种原因需要一段时间来显示子窗口,则用户不能多次点击它并弄乱事情。
皮特,示例代码总是提供更好的答案,不是吗? – 2010-01-19 17:16:24