如何将JOptionPane转换为JDialog

Pet*_*ett 3 java swing jdialog joptionpane

我需要将JOptionPage转换为JDialog,因为我需要摆脱那个古怪的"OK"按钮.以下是代码......

JOptionPane.showMessageDialog(null, Interface, caption, JOptionPane.WARNING_MESSAGE, icon);
Run Code Online (Sandbox Code Playgroud)

界面是我的GUI,"标题"是标题,然后我有一个警告信息,然后我有我的自定义图标.

对于给定的信息,这可能甚至不可能,但我真的需要摆脱它.任何帮助,将不胜感激.

Hov*_*els 5

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


你说:

显然JOptionPane很小,但要做一个JDialog,我必须创建一个Window和更多的东西.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);
}
Run Code Online (Sandbox Code Playgroud)

另一个选择是使用JOptionPane构造函数,并在不显示它的情况下创建它,然后在JOptionPane API向您显示如何操作时将其转换为JDialog,但您仍可以使用OK或类似按钮来处理.