我目前對我的擺動提醒應用程序有問題,它可以最小化到關閉的托盤。我的問題是,我需要JOptionPane對話框根據我設置的時間彈出,但這裏的問題是,當我最小化它時,對話框將彈出,但不會在窗口的頂部時,其他應用程序如explorer,firefox正在運行,任何人都知道如何彈出窗口頂部的對話框,無論應用程序正在運行?JOptionPane不會在其他窗口上顯示它的對話框
回答
自XP以來,Windows正在阻止此操作。
之前的情況是這樣的: 您在編輯器中的某些文本中發出提示,並且在您翻閱文本時無法識別出另一個對話正在到達前面。即將到來的對話獲得焦點,並且您正在新的對話框中進行提示。也許你準備好後點擊回車,然後在錯誤的對話框中執行此操作,這是詢問你是否真的想刪除你的硬盤;)
java中的前來調用只適用於java窗口。
通知用戶一個新窗口的可能性是實現一個框架,該框架將在Windows任務欄中突出顯示/閃爍。
您可能會考慮改用JFrame。它可能會給你更多的靈活性。
如果您正在使用一個JFrame,你希望它在其它窗口上方彈出使用:
myFrame.setVisible(true);
myFrame.setState(Frame.NORMAL);
的的setState將顯示窗口,用戶如果是在最小化狀態之前。
您是否正在使用一個罐裝的JOptionPanes? (像JOptionPane.showCOnfirmDialog(...))
您可能想要看看擴展JDialog並製作自己的對話框面板,然後調用myDialog.setAlwaysOnTop(true);
糾正上面的帖子..
我有如下解決我的問題:
this.setVisible(true); // show main frame
MyDialog dialog = New MyDialog(this, true); // show my custom dialog
dialog.setVisible(true);
this.setVisible(false);
它工作正常,我:)
創建一個空的分別啞的JFrame,將其設置始終並將其用作JOptionPane的組件,而不是null。所以JOptionPane總是保持在應用程序的所有其他窗口上。您還可以確定JOptionPane在屏幕上的位置與虛擬JFrame的位置。
JFrame frmOpt; //dummy JFrame
private void question() {
if (frmOpt == null) {
frmOpt = new JFrame();
}
frmOpt.setVisible(true);
frmOpt.setLocation(100, 100);
frmOpt.setAlwaysOnTop(true);
String[] options = {"delete", "hide", "break"};
int response = JOptionPane.showOptionDialog(frmOpt, msg, title, JOptionPane.YES_NO_OPTION, JOptionPane.QUESTION_MESSAGE, null, options, "delete");
if (response == JOptionPane.YES_OPTION) {
removeRow();
}
frmOpt.dispose();
}
舊帖子,但我一直在爲此而苦苦掙扎。
我的問題是Javafx允許JOptionPane超越當前Java窗口。
因此,我使用了以下方法,將JOptionPane放置在所有窗口的前方,從而完成原始海報的要求。甚至是JAVAFX。
首先老的JOptionPane:
final JDialog dialog = new JDialog();
dialog.setAlwaysOnTop(true);
JOptionPane.showMessageDialog(dialog, "Here I am");
而這裏好玩的是一切都在一個長行:
JOptionPane.showMessageDialog(null, "Here I am");
現在停留在前方的JOptionPane
JOptionPane.showMessageDialog(
((Supplier<JDialog>)() -> {final JDialog dialog = new JDialog(); dialog.setAlwaysOnTop(true); return dialog;}).get()
, "Here I am");
你可以創建一個靜態方法,在那裏爲你返回JDialog,然後在JOptionPan中調用它e清理你的代碼。
- 1. 在其他窗口頂部顯示JOptionPane
- 2. 在所有其他窗口上顯示對話框
- 3. Modal對話框不顯示在其他窗口頂部
- 4. 對話框窗口在其他窗口後面丟失
- 5. Tkinter顯示其他窗口
- 6. 顯示模態對話框(MessageBox中)凍結其他窗口在應用
- 7. 對話框不會顯示
- 8. jQuery對話框彈出窗口顯示在同一個窗口
- 9. Android:Quickaction就像對話窗口顯示其他組件
- 10. 如何顯示其他彈出窗口上的彈出窗口?
- 11. 模態對話框保留在其他窗口的背面Opensuse
- 12. WPF:對話框在*主窗口下顯示*。如何讓它上升到頂峯?
- 13. 獲取GUI對話框彈出窗口(從bash)的停留在其他窗口
- 14. 如何阻止窗口,就好像顯示對話框窗口
- 15. 在其他窗口之上的窗口
- 16. JQuery對話框不顯示在窗口中心
- 17. RecycleView不會顯示在對話框中
- 18. 如何顯示不同實例的JOptionPane對話框?
- 19. FireFox不會顯示窗口前的任何警告對話窗口事件
- 20. 簡單的PyQt4顯示其他窗口
- 21. Windows窗體:ShowDialog - 對話框不顯示
- 22. Catel在ViewModel中顯示對話窗口
- 23. 在JOptionPane的窗口
- 24. 顯示或顯示對話框其他形式C#
- 25. 在對話框窗口
- 26. 在父窗口中顯示的Primefaces彈出對話框驗證?
- 27. 消息框不顯示從模式對話窗口
- 28. 如何顯示一個MFC對話框而不會偷窺另一個窗口
- 29. 進度對話框將不會顯示
- 30. Bootsrap對話框不會顯示
擴大評論,這是非常好的。使用擴展JFrame的東西,而不是擴展JDialog的某些東西,以便在調用前端時使任務欄中的內容閃爍 – 2009-01-13 13:48:28