2012-03-08 28 views

回答

3

我假設你通過窗口菜單按鈕,文檔或程序標題和按鈕(標準)來最大化,最小化,關閉「標題欄」。

窗口邊框由操作系統繪製(無論哪個部分,例如使用XServer,大多數情況下它將成爲窗口管理器) - 通常。這就是用戶想要的 - 通常。然後,這部分窗口不在Swing的範圍之內,您需要通過本地代碼(JNI或其更好的包裝器之一,如JNA)添加組件。

但您可以將Frame設置爲未修飾,通過setUndecorated。這會讓整個窗口區域擔負起責任,您必須自己繪製所有內容並關心窗口的可拖動性。想想一個完全「皮膚」的應用程序。如果您使用的外觀支持繪製窗口邊框(javax.swing.LookAndFeel#getSupportsWindowDecorations()),則不必自己執行此操作,而是設置JFrame.setDefaultLookAndFeelDecorated(),LookAndFeel將使用Swing組件繪製邊框。然後,您可以通過glasspane或通過更改繪製標題欄的組件來添加Swing組件。

+0

+1,用於很好地包裝有效信息。 – 2012-03-08 10:01:14