我怎樣才能創建一個窗口,這是一個模態和最大化按鈕?
那麼有可能創建一個模式JFrame
或創建一個JDialog
與最大化按鈕?帶有最大化按鈕的Java模式窗口
7
A
回答
10
在大多數外觀上,模態窗口(如JDialog
)沒有最大化按鈕,僅僅因爲它們不應該被最大化(或最小化)。
使用一些技巧添加一個maximise
按鈕是可能的,但它會完成對JDialog
應該工作的方式。 如果您需要最大化按鈕,最好的解決方案是使用JWindow
或JFrame
而不是JDialog
。這些窗口支持最大化和最小化。
警告:你不應該這樣做,不管是什麼。
捉弄,讓JDialog
做到這一點:
setUndecorated(true);
getRootPane().setWindowDecorationStyle(JRootPane.FRAME);
0
1
解決方案1:測試在Windows
我用一個JFrame的模式窗口
JFrame mainWindow = new JFrame;
mainWindow.setVisible(true);
JFrame modalWindow = new JFrame();
// The next two sentences gives modalWindow modal beahaviour
mainWindow.setEnabled(false);
mainWindow.setFocusable(false);
modalWindow.setVisible(true);
解決方案2:測試在Ubuntu
我加入的WindowFocusListener
addWindowFocusListener(new java.awt.event.WindowFocusListener() {
public void windowGainedFocus(java.awt.event.WindowEvent evt) {}
public void windowLostFocus(java.awt.event.WindowEvent evt) {
formWindowLostFocus(evt);}
private void formWindowLostFocus(java.awt.event.WindowEvent evt) {
this.requestFocus();
this.toFront();}
+1
解決方案2是「超級模式」,不管其他窗口是否可以選擇,不管是Java還是本地的。小心! – sillo01 2014-06-20 14:54:51
相關問題
- 1. XLib窗口沒有最大化按鈕
- 2. 彈出窗口最大化按鈕
- 3. 嵌入WebView的Gtk3窗口最大化按鈕最大化
- 4. 從窗口中刪除最小化/最大化按鈕,OpenTK
- 5. 如何禁用最小化和最大化的窗口形式C#按鈕
- 6. 最大化窗口中沒有還原按鈕
- 7. Tkinter模式窗口不會讓主窗口最大化
- 8. 如何檢索窗口最小化,最大化和關閉按鈕的大小?
- 9. JPanel - 帶按鈕的窗口
- 10. 窗口最大化最大化
- 11. Javascript最大化/ unmaximize窗口與相同的按鈕
- 12. 如何禁用window.open彈出窗口中的最大化按鈕?
- 13. 在定製的最小化按鈕上恢復窗口大小
- 14. C++ Win32(WinAPI)最大化按鈕的自定義窗口框架
- 15. 最大化窗口我的形式
- 16. Windows是否允許有幫助按鈕和最小/最大按鈕的窗口?
- 17. 隱藏最大化/最小化和關閉按鈕的Matlab圖形窗口
- 18. 如何渲染窗口關閉/最大化/最小化wpf中的按鈕?
- 19. Mac覆蓋窗口最大化按鈕C++
- 20. 獲取最大化最小化窗口的窗口位置
- 21. c#最大化,最小化和關閉窗體上的按鈕
- 22. 在Gnome中爲窗口添加最小化和最大化按鈕
- 23. 當窗口最大化時獲得非最大化的窗口位置/大小
- 24. 窗口最小化和最大化
- 25. 禁用窗口最大化/最小化
- 26. WPF窗口最大化
- 27. Caliburn.Micro最大化Silverlight窗口
- 28. JFrame最大化窗口
- 29. 如何最大化窗口?
- 30. 如何最大化窗口?
因此,沒有任何「合法」的方式來做到這一點? :S – user 2010-10-10 14:30:48
@JánosHarsányi,不,據我所說,他們不應該有一個最大化的按鈕。 – 2010-10-10 14:43:24
有趣的h4x,但絕對不是一個好的做法 – 2012-10-09 14:18:36