【问题标题】:How to get the size of JPanel which is not visible yet如何获取尚不可见的JPanel的大小
【发布时间】:2012-09-01 15:23:30
【问题描述】:

我在 JDialog 中有一个可调整大小的 JScrollPane。 JScrollPane 有一个 JPanel(称为容器)所有这些 JScrollPane、JPanel 和 Jdialog 都是可调整大小的。在运行时,另一个 JPanel(称为子级)被添加到位于 JDialog 的 JScrollPane 内的前一个 jPanel 中。我想获取“子级”JPanel 大小的大小。在将 'child' JPanel 添加到 'container' JPanel 之前和之后,'child' 和 'container' JPanel 的大小显示为 0 0. (child.getSize() , container.getSize())。

在查看 JComponent 之前,不可能获得大小。但在我的情况下,即使添加并查看了“子”JPanel,大小仍然为 0。

添加到“容器”JPanel 后如何获得“子”JPanel 的实际大小

【问题讨论】:

  • 这种类型的问题通常归结为解决无法使用布局的问题。最好的解决办法是学习如何使用布局。
  • 默认组件的大小为 0x0。我们需要跳过一些障碍才能做到这一点。有关为JTable 执行此操作的一些提示,请参阅this thread,尽管LabelRenderTest.javaJLabel 执行此操作更简单。
  • 我没有提供答案。尽管如果您喜欢链接中的我的 Qs & As,请随时为它们投票。 ;)

标签: java swing layout jscrollpane jdialog


【解决方案1】:

您可以在setVisible() 之前使用validate() 以获取几何图形,如here 所述。

【讨论】:

    【解决方案2】:

    将子Jpanel添加到容器JPanel后,得到子面板大小,则不是0大小,而是实际大小。感谢所有评论并回答我的问题的人。另外,正如垃圾神所说,我打电话给validate()。一切正常。

    【讨论】:

      猜你喜欢
      • 2023-01-10
      • 2011-10-11
      • 1970-01-01
      • 1970-01-01
      • 2011-09-01
      • 2015-10-11
      • 1970-01-01
      • 2011-12-04
      相关资源
      最近更新 更多