JDialog 类中是否存在一种方法来防止子窗口(JDialog)在用于打开它的主窗口(JFrame)的按钮被多次按下时多次显示?提前谢谢了!
问问题
1128 次
3 回答
2
是的,您不需要将框设为模态即可(尽管将其设为模态将是最简单的方法)。
只需执行以下操作
在您的成员声明中:
private final MyDialog dialog = new MyDialog();
在您的代码中:
private void showDialog() {
dialog.setVisible(true);
dialog.requestFocus(); // May be needed to bring window to front
}
这将确保您只实例化一次该框。只要按下按钮,只需调用 showDialog() 即可。
于 2010-01-19T17:08:10.563 回答
1
我过去使用 Swing 完成的另一种方法是,当按下按钮时,我要做的第一件事就是禁用按钮。然后我使用可观察模式查看子窗口并在子窗口关闭时重新启用按钮。这样,如果由于某种原因需要一段时间来显示子窗口,用户就不能多次单击它并搞砸了。
于 2010-01-19T17:19:52.623 回答
0
您可以制作JDialog
模式,然后父窗口在关闭之前不会做出反应。
或者您可以初始化JDialog
之前,并在按下按钮时使其可见。使其可见两次不会显示两次。
于 2010-01-19T17:04:27.417 回答