Java 如何将JOptionPane转换为JDialog

Java 如何将JOptionPane转换为JDialog,java,swing,joptionpane,jdialog,Java,Swing,Joptionpane,Jdialog,我需要将JOptionPage转换为JDialog,因为我需要去掉那个古怪的“OK”按钮。下面是代码 JOptionPane.showMessageDialog(null, Interface, caption, JOptionPane.WARNING_MESSAGE, icon); 界面是我的GUI,“标题”是标题,然后是警告消息,然后是自定义图标 这甚至可能不可能与给定的信息,但我真的需要摆脱这个OK。任何帮助都将不胜感激。为什么不简单地创建一个JDialog并将您的接口对象放入其cont

我需要将JOptionPage转换为JDialog,因为我需要去掉那个古怪的“OK”按钮。下面是代码

JOptionPane.showMessageDialog(null, Interface, caption, JOptionPane.WARNING_MESSAGE, icon);
界面是我的GUI,“标题”是标题,然后是警告消息,然后是自定义图标


这甚至可能不可能与给定的信息,但我真的需要摆脱这个OK。任何帮助都将不胜感激。

为什么不简单地创建一个JDialog并将您的接口对象放入其contentPane,然后打包并显示它呢。简单


你说:

显然JOptionPane很小,但要做JDialog,我必须创建一个窗口和更多的东西。GUI已经创建好了,我可以简单地将其导入到JOptionPane中。我相信用JDialog是做不到的

我很困惑。你说的“GUI”是什么意思?同样,如果它是一个JPanel,只需将其放入JDialog中即可

例如,如果在ActionListener中

public void actionPerformed(ActionEvent e) {
  // assuming this is being called from within a JFrame named myFrame
  JDialog dialog = new JDialog(myFrame, "Dialog Title", ModalityType.APPLICATION_MODAL);
  dialog.getContentPane().add(interface);
  dialog.pack();
  dialog.setLocationRelativeTo(myFrame);
  dialog.setVisible(true);
}


另一个选项是使用JOptionPane构造函数,在不显示它的情况下创建它,然后将其转换为JDialog,正如JOptionPane API所示,但是您可能仍然需要处理“确定”或类似的按钮。

为什么不直接创建一个JDialog而不执行JOptionPane步骤呢?我已经编写了整个JOptionPane。我不确定这样做的唯一方法是否是返回并以JDialog格式重新创建整个代码,但如果我不必这样做,那就太好了。
“嗯,我已经编写了整个JOptionPane…”
——见鬼,这最多是一行或两行代码。我支持同样的建议。如果接口(应该命名为Interface)是一个JPanel,那么只需将它放在JDialog的contentPane中即可。无需创建扩展JDialog的类。把你的JPanel放进一个。哈哈,好吧,也许我说错了。显然JOptionPane很小,但要做JDialog,我必须创建一个窗口和更多的东西。GUI已经创建好了,我可以简单地将其导入到JOptionPane中。我相信JDialog是做不到的。好吧,让我来测试一下,看看会有什么结果。好吧,就是这样!由于可见性设置,我感到困惑。JOptionPane不必设置为true。非常感谢,我会在有能力的时候接受你的回答。:)@user3010468:是的,您可以使用JOptionPane构造函数创建它而不显示它,然后将它转换为JDialog,正如JOptionPane API向您展示的那样,但是您可能仍然需要处理OK或类似的按钮。