以编程方式关闭JOptionPane.ShowInternalOptionDialog

时间:2011-03-23 16:29:34

标签: java swing joptionpane

我目前的设计是这样的: 我有一个显示主应用程序的外框。当用户单击主应用程序上的按钮时,应启动弹出窗口。我正在使用JOptionPane.showInternalOptionDialog并将按钮对象作为选项传递。当用户单击其中一个按钮时,它应该运行某些命令然后关闭窗口。我无法关闭显示弹出窗口的框架。

我在此论坛中发现了一个类似的问题,建议采用以下解决方法。 Closing a dialog created by JOptionPane.showOptionDialog()

但是上面的解决方法关闭了我的完整gui。我只是想关闭JOptionPane弹出窗口。

提前致谢。

4 个答案:

答案 0 :(得分:6)

JOptionPane.getRootFrame().dispose();

在一个事件中

答案 1 :(得分:2)

一些解决方案:

  1. 直接创建JOptionPane,而不是使用showX()方法。这将允许您引用可以传递给按钮的对话框,以允许它调用dispose方法()。
  2. 创建自己的对话框,而不是使用JOptionPane。这是我的首选,看到你开始摆脱简单的对话。

答案 2 :(得分:0)

默认情况下,单击JOptionPane中的按钮将关闭对话框。如果你没有,那是因为你使用的是实际组件而不是字符串或其他对象,而是调用按钮的自定义事件处理程序而不是它自己的。

我建议您采用不同的方法,使用字符串而不是按钮。使用一组按钮作为输入值,当对showInternalOptionDialog的调用返回时,您可以检查int索引以找出按下的内容,然后在代码中打开它。这样,您根本不必触摸JOptionPane,它将自行关闭。

答案 3 :(得分:0)

我遇到了同样的问题。我使用一个在X毫秒后关闭我的JOptionPane的线程来解决它。

GET /collections/123/items?orderby=lastModifiedDate