[英]JPanel vs JFrame in Java
我正在學習Java gui。 我學習創建窗口的方法是繼承或擴展JFrame
類,並且最好使用它,因為JFrame
包含Window的所有屬性。 現在,如果我想在此窗口中添加內容,我需要使用add()
方法。 但今天我遇到了JPanel
,它也創建了一個窗口,我們可以通過jpanelObjec.add()
添加內容。
這兩種方法有什么區別? 它們是否有某種關聯?
您不應該不必要地擴展JFrame
類(僅當您向JFrame
類添加額外的功能時)
JFrame :
JFrame
擴展了Component
和Container
。
它是一個頂級容器,用於表示窗口的最低要求。 這包括Border
s,可恢復性( JFrame
可調整大小?),標題欄,控件(最小化/最大化允許?),以及各種Event
的事件處理程序,如windowClose
, windowOpened
等。
JPanel :
JPanel
擴展了Component
, Container
和JComponent
它是一個泛型類,用於將其他Component
組合在一起。
在使用LayoutManager
時非常有用,例如GridLayout
fi將組件添加到不同的JPanel
,然后將其添加到JFrame
以創建gui。 它在Layout
和可重用性方面更易於管理。
它也適用於在Swing中繪制/繪制時,你會覆蓋paintComponent(..)
,當然還有雙緩沖的完整樂趣。
沒有頂級容器(如JWindow
, Window
, JFrame
Frame
或Applet
),Swing GUI不可能存在,而它可能不存在JPanel
。
JFrame
是窗口; 它里面可以有一個或多個JPanel
實例。 JPanel
不是窗口。
你需要一個Swing教程:
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.