设置Java Swing输入对话框始终置顶

4

如果我需要让我的JOptionPane始终在最上层,这是我可以做到的方法:

JOptionPane optionPane = new JOptionPane();
JDialog dialog = optionPane.createDialog("My Dialog");
dialog.setAlwaysOnTop(true);
dialog.setVisible(true);

但是 JOptionPane 的输入对话框怎么办呢? 我们可以做类似的事情来确保下面的输入对话框出现在顶部吗?

JOptionPane.showInputDialog(null,"My Input");

请注意,我的应用程序不是GUI类型的,因此我无法设置父窗口。

1
JOptionPane 在其核心只是另一个 JComponent,它提供了一些帮助方法来创建和管理对话框,所以,是的,你可以这样做,但你必须自己创建对话框,概念上类似于这个例子 - MadProgrammer
1
这里有一个例子,可以实现你想要的效果,而不需要修改每个JOptionPane的调用。 - Sergiy Medvynskyy
1个回答

2

最终我通过深入挖掘JOptionPane类本身找到了解决方案。

JOptionPane有一个名为setWantsInput()的方法,我们需要将其设置为true,以使其成为输入对话框。

以下是可工作的代码:

JOptionPane optionPane = new JOptionPane("body of the dialog");
optionPane.setWantsInput(true); //this is what I added
JDialog dialog = optionPane.createDialog("Title Of the Dialog");
dialog.setAlwaysOnTop(true);
dialog.setVisible(true);
dialog.dispose();
System.out.println(optionPane.getInputValue());

如何为输入对话框执行此操作? - DilanG

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接