【问题标题】:Bringing a joptionpane infront of all other windows在所有其他窗口前面放置一个 joptionpane
【发布时间】:2015-04-01 19:57:52
【问题描述】:

这个概念很简单。我想在所有其他当前打开的窗口/应用程序前面添加一个 JOptionPane 框架。

我想在没有 Applescript(外部java)或任何第三方库之类的帮助下完成此操作。纯java。

我已经全面搜索了这个,但找不到一个单一的非第三方解决方案。 (.toFront() 只是“聚焦”在窗口上,但实际上并不显示在前面。)

JOptionPanel 和 JDialog 代码:

JOptionPane optionPane = new JOptionPane(p4.msg, JOptionPane.INFORMATION_MESSAGE, JOptionPane.YES_OPTION);
    JDialog dialog = optionPane.createDialog("Important1!");
    dialog.setVisible(true);

其中 p4 是一个包含公共字符串的对象。

【问题讨论】:

  • 你不是说模态的吧?对于JDialog,另一个对setVisible(true) 的调用通常可以正常工作,所以这在这里也有帮助。
  • 我从来没有搞砸过“模态”,因为我是瑞士人,所以我真的无法理解它。你能解释一下吗? @tomse Google 到目前为止没有帮助我
  • 如果我没听错的话,您的JOptionPane 已经打开了,您想把它放在前面吗?打开对话框 modal 意味着如果打开 modal 对话框,则所有其他对话框都将被阻止输入。见Dialog.setModal
  • 是的,joptionpane 那时已经打开了。但是,这不会把它放在所有其他窗户的前面,对吧? @tomse
  • 你试过setVisible(true)而不是调用toFront()吗?

标签: java joptionpane


【解决方案1】:

试试这个,我假设你是从一个框架调用 JOptionPane,所以通过使用这个传递框架引用,它应该至少在你正在运行的程序之上显示它,假设它有焦点。

    JOptionPane.showMessageDialog(this, p4.msg,"Important1!", JOptionPane.INFORMATION_MESSAGE);       

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-04-03
    • 2016-04-27
    • 2011-09-12
    • 1970-01-01
    • 2021-11-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多