[英]How to prevent JFrame from coming to top after closing JOptionPane?
我正在使Web瀏覽器上的某些操作自動化。 完成許多操作后,將彈出一個JOptionPane
以詢問用戶是否要繼續。
單擊“是”后,我的主框架將在我的Web瀏覽器上彈出,這破壞了我的工作流程。
我可以使瀏覽器移至主機架的前面,但是我想知道是否有可能在JOptionPane
對話框中選擇一個選項后阻止主機架彈出?
我在JOptionPane
上找不到任何選項,所以我開始研究使用另一個JFrame
重新實現它有多么容易。 我決定禁用主機並稍后再啟用它(看來這是JOptionPane
在內部所做的事情),在我重新實現JOptionPane
之前,我注意到它可以解決問題:
public static void main(String[] args) {
final JFrame frame = new JFrame();
JButton button = new JButton("hello");
button.addActionListener(e -> {
frame.setEnabled(false); // disable main frame
JOptionPane.showMessageDialog(frame, "hello");
frame.setEnabled(true); // enable main frame
});
frame.setContentPane(button);
frame.setVisible(true);
frame.setSize(600, 480);
frame.setLocationRelativeTo(null);
frame.setDefaultCloseOperation(WindowConstants.DISPOSE_ON_CLOSE);
}
但是,我不確定這是否適用於所有平台。 有幫助嗎?
如果沒有,我建議替換JOptionPane.showMessageDialog(frame, "hello");
使用您自己的JFrame
因此您可以完全控制它。 您必須添加WindowListener
才能在關閉主框架時啟用它。 但是,您將松開阻止功能-這可能比實現它的價值更難實現。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.