我想要一个没有按钮的JOptionPane,并且用户无法关闭它以相对于另一个组件出现在屏幕的中心。然后我想执行一些其他代码,之后我将关闭JOptionPane。
这就是我所拥有的:
JOptionPane uploadPane = new JOptionPane("Uploading data...", JOptionPane.INFORMATION_MESSAGE, JOptionPane.DEFAULT_OPTION, null, new Object[]{}, null);
JDialog dialog = new JDialog();
dialog.setTitle("Uploading");
dialog.setModal(true);
dialog.setContentPane(uploadPane);
dialog.setDefaultCloseOperation(JDialog.DO_NOTHING_ON_CLOSE);
dialog.pack();
dialog.setVisible(true);
dialog.setLocationRelativeTo(this);
// TODO: Upload data
dialog.dispose();
此代码在屏幕的左上角创建一个JOptionPane,显示我想要显示的方式(除了它的位置)。但是,它没有关闭。
当我摆脱界限时:
dialog.setModal(true);
JOptionPane在应该存在的位置创建,并根据dispose命令关闭。但是,出于某种原因,它没有说什么。除标题外没有任何消息或图标。
如何让它发挥作用?
答案 0 :(得分:0)
如果在JDialog中将模型设置为true
,则只要JDialog
设置为可见,执行就会停止,执行将等到对话框关闭。
但是在您的代码中,您已经提供了dialog.setDefaultCloseOperation(JDialog.DO_NOTHING_ON_CLOSE);
。
因此无法关闭对话框,这意味着您的应用程序执行将永远等待。
这意味着,
dialog.setLocationRelativeTo(this);
并且根本不会执行任何后续行。