2011-03-25 84 views
1

如何在java中使用swing來操縱窗口框架?就像如何改變顏色一樣,如何讓它不是PC主題的默認風格,而是成爲一個圖像,例如?Java swing窗框

+2

從這裏開始http://download.oracle.com/javase/tutorial/uiswing/components/frame.html並按照鏈接 – 2011-03-25 10:17:00

回答

0

正如我所知,目前還沒有辦法做到這一點。例如,您可以爲自定義窗口創建自己的類,從而擴展JWindow。那麼你可以自己創建風格。這只是一個小小的工作。

// add pacakge and imports as needed... 

/** 
* Sample class implementation for windows with own frame style. 
* Additional constructors may be added as needed. Default constructor used 
* to show principle. 
*/ 
public class MyWindow extends JWindow { 
    public MyWindow() { 
     super(); 
     initUI(); 
    } 

    private void initUI() { 
     setLayout(new BorderLayout()); 
     add(new MyWindowFrameTop(this)); 
     add(new MyWindowFrameLeft(this)); 
     add(new MyWindowFrameRight(this)); 
     add(new MyWindowFrameBottom(this)); 
    } 
} 

JWindow是Java API文檔告訴的「頭等公民」。它是桌面內的全功能窗口,但忽略了窗口操作的所有實現,如關閉,最大化,最小化和窗口菜單。通過使用BorderLayout並將自己的框架對象實現工作,可以像上面那樣添加此功能的實現。 MyWindowFrameXXX對象可能是JPanels,它可以繪製所需的框框部分,標題圖像等等。也可以爲窗口操作添加按鈕併爲調整大小實現鼠標操作。爲了實現這一點,框架對象需要父窗口引用來執行窗口上的所有操作。

它會遠去這裏寫下所有東西。我認爲,原則顯示了,我也不知道真正要實施的實際效果是什麼。

+0

你能舉一些例子嗎? – weardstuff 2011-03-25 16:20:12

1

要更改顏色,您可以使用setBackground(Color c)方法在框架對象或面板對象上。 例如:

JFrame fr=new JFrame("Color demo"); 
fr.setBackground(Color.red); // color set to red 
fr.setSize(900,200);   // size changed 
fr.setResizable(false);  // you cant resize your window now 

如需進一步自定義您的Java框架,你可以遵循thisthis one。 你可以在鞦韆上開始this website

+0

請注意,您可以使用setBackground(Color c)作爲其他鞦韆組件 – 2011-03-25 11:00:05

+0

我的意思是框架的出口按鈕,而不是背景 – weardstuff 2011-03-25 16:19:36

0

一切與窗戶看鞦韆的方式可以由外觀和感覺(LaF)處理。有關更多信息,請參見the LaF tag(我寫它)。大多數外觀和風格將風格窗口的內容和其中的所有組件。

在JDK中有許多默認的LaF隨Swing提供。它們包括Motif,Metal和Synth(這是您自定義的空白樣式)。還有很多你可以在網上找到和下載。在顯示GUI之前,您可以將它們中的任何一個放入您的類路徑中,並在您的主要方法中運行UIManager.setLookAndFeel(...)

這聽起來像你正在專門尋找一種方法來定製窗口框架,而這不是經常進行。我個人不會推薦它,但如果你真的想要,你可以通過致電setUndecorated(true)Window關閉框架裝飾。然後你留下一個無邊框窗口。然後,您必須決定如何重新實現所需的窗口功能,如使用自定義關閉按鈕關閉。