【发布时间】:2012-10-02 12:23:41
【问题描述】:
在 Swing for Java 1.5 中,我想创建一个对话框,允许用户在后台执行其他操作。我希望这个对话框有一个按钮,你可以用它来关闭对话框。如果用户没有在 X 秒内关闭对话框,它应该自行关闭。在这两种情况下,都必须在对话框关闭后执行例程。
我尝试将 Swing Timer 与模态对话框一起使用,它可以工作。但是,正如我上面注意到的,我需要一个非模态对话框。当我将 modal-Property 设置为 false 时,对话框立即消失。
有人知道,为什么会这样吗?
JOptionPane pane = new JOptionPane (text, JOptionPane.WARNING_MESSAGE);
pane.setOptions(new String[]{"Close"});
final JDialog dialog = pane.createDialog(frame, title);
//dialog.setModal(false);
Timer timer = new Timer(time, new ActionListener() {
public void actionPerformed(ActionEvent e) {
dialog.setVisible(false);
}
});
timer.setRepeats(false);
timer.start();
dialog.setVisible(true);
//routine to do after the dialog disappears
【问题讨论】:
-
您的代码适用于我,设置为模态或非模态。也许你的其余代码有问题?
-
与 Rempelos 相同,在设置和不设置对话框模式的情况下测试了您的代码,并且它可以正常工作。除了您向我们展示的内容之外的其他内容未按预期工作。
-
你用 Java 1.5 试过了吗?
-
我用jdk1.6.0_33尝试了1.5的执行环境,没有安装1.5。
标签: java multithreading swing jdialog