Java 在swing 1.5中指定时间后自动关闭非模式对话框
在SwingforJava1.5中,我想创建一个对话框,允许用户在后台做其他事情。我希望这个对话框有一个按钮,你可以用它关闭对话框。如果用户没有在X秒内关闭对话框,它应该自动关闭。在这两种情况下,都必须在对话框关闭后执行例程 我尝试将Swing定时器与一个模态对话框结合使用,效果很好。但是,正如我在上面注意到的,我需要一个非模态对话框。当我将模态属性设置为false时,对话框立即消失 有人知道为什么会这样吗Java 在swing 1.5中指定时间后自动关闭非模式对话框,java,multithreading,swing,jdialog,Java,Multithreading,Swing,Jdialog,在SwingforJava1.5中,我想创建一个对话框,允许用户在后台做其他事情。我希望这个对话框有一个按钮,你可以用它关闭对话框。如果用户没有在X秒内关闭对话框,它应该自动关闭。在这两种情况下,都必须在对话框关闭后执行例程 我尝试将Swing定时器与一个模态对话框结合使用,效果很好。但是,正如我在上面注意到的,我需要一个非模态对话框。当我将模态属性设置为false时,对话框立即消失 有人知道为什么会这样吗 JOptionPane pane = new JOptionPane (text, J
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
多线程的代码或说明
final JDialog dialog=pane.createDialog(框架,标题)
在运行时,一次创建此JDialog
并将其用于另一个操作,和/或从ContentPane
dipose()
,setVisible()
e.i.之前调用自定义代码HIDE\u ON\u CLOSE
顶级容器的所有代码必须包装到invokeLater()
,尤其是setVisible(true)
多线程的代码或说明
final JDialog dialog=pane.createDialog(框架,标题)
在运行时,一次创建此JDialog
并将其用于另一个操作,和/或从ContentPane
dipose()
,setVisible()
e.i.之前调用自定义代码HIDE\u ON\u CLOSE
顶级容器的所有代码必须包装到invokeLater()
,尤其是setVisible(true)
JDialog
在关闭前包含一个倒计时到零的值。附近包含标签的JFrame
保持响应
附录:@mKorbel提供了一些有用的注释,您的类可以使用PropertyChangeListener
来了解对话框的选项窗格何时关闭。这是一个方便的JOptionPane
,但是您可以添加自己的支持,如图所示
在这种情况下,一个无模式的JDialog
在关闭前包含一个倒计时到零的值。附近包含标签的JFrame
保持响应
附录:@mKorbel提供了一些有用的注释,您的类可以使用PropertyChangeListener
来了解对话框的选项窗格何时关闭。这是一个方便的JOptionPane
,但是您可以添加自己的支持,如图所示
您的代码对我有效,设置为模态或非模态。您的其他代码可能有问题?与Rempelos一样,在设置对话框模式和未设置对话框模式的情况下测试代码,结果正常。您向我们展示的内容以外的内容无法按预期工作。您是否在Java 1.5中尝试过此功能?我在1.5中使用jdk1.6.0_33的执行环境中尝试过,但没有安装1.5。您的代码对我有效,可以设置为模态或非模态。您的其他代码可能有问题?与Rempelos一样,在设置对话框模式和未设置对话框模式的情况下测试代码,结果正常。您向我们展示的内容以外的其他内容无法按预期工作。您在Java 1.5中尝试过此功能吗?我在1.5中使用jdk1.6.033的执行环境中尝试过,没有安装1.5。引用的示例在无模式对话框中直接使用
JOptionPane
。引用的示例在无模式对话框中直接使用JOptionPane
。现在我可以查看查看对话框消失后要执行的//例程了
这是一个好主意!我aaach现在我可以查看eeee//对话框消失后要执行的例程
很好!我以上。