2015-04-14 45 views
1

我被用來做NetBeans拖放的java swing編程,並且從來沒有真正關心過它生成的代碼。現在我正在學習編寫圖形用戶界面程序,而不用拖拽。在swing圖形用戶界面中選擇繼承和組合

發生在我身上的根本問題是,我打算將窗口做成IS_A JFrame還是HAS_A JFrame。即是否使用繼承或組合。

如果mywindow的是一個JFrame

public class MyWindow extends JFrame{ 

} 

如果mywindow的有一個JFrame

public class MyWindow{ 
    private JFrame frame; 
} 

兩者似乎沒什麼問題。但我想應該有一個正確的方法來解決這兩個問題。什麼是正確的方式,爲什麼?

回答

0

如果你想讓你的類表現爲一個窗口,那麼你應該從JFrame擴展它(至少在我看來)。據我所知,這是你應該如何去做的。

如果另一方面,你想要一個有權訪問一個窗口的類,那麼你會選擇第二個選項。這就是說,你仍然需要初始化一個從JFrame擴展的類。

編輯:問題的答案確實說,但它也表示,這取決於你以後是什麼。如果我正確地理解了答案(也許其他人可以對此進行評論),如果您有一個場景需要一個框架將列表打印到表格中,則可以使用框架並提供實用方法一個列表並將其打印到表格中。然後,您的邏輯將實例化此類而不是實際的JFrame並使用它來顯示數據。

我的方法是通常我有一個擴展了JFrame的類,並提供了一系列使打印數據變得簡單的方法。然後我會有另一個類,它鏈接邏輯層和視圖層。該類將引用JFrame擴展類。

+0

@assylias指出的問題表明組成是優先考慮的。你對此有何想法? – DesirePRG

+0

@DesirePRG:我試圖擴大我的答案。如果您有任何疑問,請告訴我。 – npinti