我创建了一个 DialogUtil,它显示了不同情况下 JOptionPan 的数量。 有时在我的操作类中使用空参数调用此方法,如下所示。
DialogUtil.showNotExist(null,xml.getName().concat(" is null or"));
在这种情况下,JOptionPane 不会出现在窗口的顶部。
如何向 JOptionPane 添加内容以始终显示在顶部?
public static void showNotExist(JPanel panel, String action) {
JOptionPane.showMessageDialog(panel, new JLabel(action.concat(" doesn't exist."), 2));
}
最佳答案
你试过这样的事情吗?
JOptionPane optionPane = new JOptionPane();
JDialog dialog = optionPane.createDialog("Title");
dialog.setAlwaysOnTop(alwaysOnTop);
dialog.setVisible(true);
无法保证操作系统会让您的对话框始终位于最前面,但它通常会起作用。
如果你有一个现有的窗口或对话框,你想把它带到顶部,但不想永久设置 alwaysOnTop,这应该可以工作,同时单独保留 alwaysOnTop 的旧值:
boolean supported = window.isAlwaysOnTopSupported();
boolean old_alwaysOnTop = window.isAlwaysOnTop();
if (supported) {
window.setAlwaysOnTop(true);
}
window.toFront();
window.requestFocus();
if (supported) {
window.setAlwaysOnTop(old_alwaysOnTop);
}
仅在 SwingThread 上运行该代码。
关于java - 如何在所有窗口的顶部显示 JOptionPane,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10880981/