我想要一个没有按钮,不能被用户关闭的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命令关闭。然而,由于某种原因,上面什么也没说。除了标题之外,没有任何消息或图标。
我怎么才能让它工作呢?
发布于 2015-07-26 08:53:45
如果在JDialog中将模型设置为true
,则在JDialog
设置为可见时,执行将立即停止,并且将一直等到对话框关闭。
但是在你的代码中,你已经给了dialog.setDefaultCloseOperation(JDialog.DO_NOTHING_ON_CLOSE);
。
所以你的对话框不能被关闭,这意味着你的应用程序的执行将永远等待。
这意味着,
dialog.setLocationRelativeTo(this);
并且任何下面的行都不会被执行。
https://stackoverflow.com/questions/31635070
复制相似问题