【问题标题】:what is the difference between container and panel?容器和面板有什么区别?
【发布时间】:2014-04-12 12:52:48
【问题描述】:

我真的对容器和面板感到很困惑 我听说我们正在添加的组件将被添加到容器对象中,但是 我也听说它会添加到面板中......然后谁在小程序上显示组件...... 它是按容器显示还是按面板显示? 还告诉我,小程序中的空白白色表面是面板还是容器??? 什么是容器???? 我还在容器和面板上编写了程序,但不理解这两者的概念..

请澄清我的疑问:

  1. 如果我们不创建面板对象,那么组件在小程序窗口中也是可见的...

  2. 如果我们不创建容器对象,那么组件在小程序窗口中也是可见的...

通常我们使用 add() 在小程序上添加组件,但是即使我们没有创建面板和容器的对象,它也是如何添加的...我通过不创建面板和容器的对象来尝试这个程序,它仍然可以工作并且它显示小程序上的组件...如何??? 请告诉我,我知道我问的问题很愚蠢,但请清除我的疑虑..由于这种混乱,我无法转发我的研究....

【问题讨论】:

  • 您可以查看docs 和类层次结构。 JPanelContainer 的子类
  • 而不是Applet,考虑hybrid

标签: java swing applet panel containers


【解决方案1】:

容器是一个概念,它由PanelJFrameApplet(在您的情况下)实现。

  1. 如果我们不创建面板对象,那么组件在小程序窗口中也是可见的...
    -> 是的,因为你的 Jframe、applet 是主容器,它们可以在没有面板的情况下添加组件。

  2. 如果我们不创建容器对象,那么组件在小程序窗口中也是可见的...
    -> not create container 表示不创建 jframe/applet/panel。当然,没有什么可显示的。

您可以在下面看到它们都是容器:
Inheritance tree of JFrame:

java.lang.Object
java.awt.Component
java.awt.Container
java.awt.Window
java.awt.Frame
javax.swing.JFrame

Inheritance tree of JApplet:

java.lang.Object
java.awt.Component
java.awt.Container
java.awt.Panel
java.applet.Applet
javax.swing.JApplet

Inheritance tree of JPanel:

java.lang.Object
java.awt.Component
java.awt.Container
javax.swing.JComponent
javax.swing.JPanel

【讨论】:

  • 老兄说的是小程序,而不是摇摆......我想知道如果我们不创建一个对象,那些面板和容器然后仍然在小程序上可见组件如何????那是我的问题……它会自动创建一个组件对象来保存Applet上的组件吗??
  • 您的小程序是一个容器。关键是它们都是容器。
  • 查看JApplet的继承树可以看到applet是一个容器
  • @user3485153 awt hierarchy 没有什么不同,除了组件没有扩展 JComponent。如果您感到困惑,请学习阅读文档。
  • @user3485153, Dude am talking about APPLET,not a swing - 那你为什么使用 Swing 标签?顺便说一句,您可以在 Swing 中使用 JApplet。
猜你喜欢
  • 2019-07-30
  • 2020-12-21
  • 1970-01-01
  • 2011-08-26
  • 2022-08-12
  • 2015-03-18
  • 1970-01-01
  • 2016-01-23
  • 2021-11-20
相关资源
最近更新 更多