2012-11-20 81 views
2

我想問如何讓框架在應用程序運行時不能拖動?禁用JFrame拖拽

然後如何禁用最大化,最小化按鈕(標題欄)?我正在使用JFrame

+0

此說明聽起來更像是一個工具提示。最終用戶打破這種框架的好處是什麼? –

+0

你不能(真的)。這些是外觀和感覺/平臺特定的操作。您可以使用'JDialog'代替,因爲這通常只有一個關閉按鈕。您也可以嘗試覆蓋幀的'setBounds'方法並確保它始終位於特定位置 – MadProgrammer

回答

3

只需添加下面的行,就可以刪除窗口裝飾,如關閉最大化和最小化(標題欄)。這本身只能通過鼠標事件來禁用拖動。

frame.setUndecorated(true); 
+1

*「這本身禁用拖動」*但它並不阻止窗口被移動。 Windows上的Alt +空格彈出一個菜單,允許我使用箭頭鍵重新定位未修飾的窗口。 –

+0

非常感謝我指出我的錯誤。 – Vinay

+0

良好的編輯... :) –

-1

您可以使用JWindow代替JFrame。沒有標題欄,所以用戶將無法移動它。

setResizable(false); 
setUndecorated(true); 
getRootPane().setWindowDecorationStyle(JRootPane.PLAIN_DIALOG); 
+0

*「..用戶將無法移動它。」*我可以。 Windows上的Alt +空格彈出一個菜單,允許我使用箭頭鍵重新定位窗口。 –

+0

Gnome允許在窗口的任何部分通過「Alt + mouse_drag」移動窗口。 – svz