簡體   English   中英

Java中的JPanel vs JFrame

[英]JPanel vs JFrame in Java

我正在學習Java gui。 我學習創建窗口的方法是繼承或擴展JFrame類,並且最好使用它,因為JFrame包含Window的所有屬性。 現在,如果我想在此窗口中添加內容,我需要使用add()方法。 但今天我遇到了JPanel ,它也創建了一個窗口,我們可以通過jpanelObjec.add()添加內容。

這兩種方法有什么區別? 它們是否有某種關聯?

您不應該不必要地擴展JFrame類(僅當您向JFrame類添加額外的功能時)

JFrame

JFrame擴展了ComponentContainer

它是一個頂級容器,用於表示窗口的最低要求。 這包括Border s,可恢復性( JFrame可調整大小?),標題欄,控件(最小化/最大化允許?),以及各種Event的事件處理程序,如windowClosewindowOpened等。

JPanel

JPanel擴展了ComponentContainerJComponent

它是一個泛型類,用於將其他Component組合在一起。

  • 在使用LayoutManager時非常有用,例如GridLayout fi將組件添加到不同的JPanel ,然后將其添加到JFrame以創建gui。 它在Layout和可重用性方面更易於管理。

  • 它也適用於在Swing中繪制/繪制時,你會覆蓋paintComponent(..) ,當然還有雙緩沖的完整樂趣。

沒有頂級容器(如JWindowWindowJFrame FrameApplet ),Swing GUI不可能存在,而它可能不存在JPanel

JFrame是窗口; 它里面可以有一個或多個JPanel實例。 JPanel 不是窗口。

你需要一個Swing教程:

http://docs.oracle.com/javase/tutorial/uiswing/

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM