JComponent 绘制前的高度

Posted

技术标签:

【中文标题】JComponent 绘制前的高度【英文标题】:JComponent height before painting 【发布时间】:2012-01-21 07:21:49 【问题描述】:

我有一个 Jpanel,我在其中添加了许多组件(比如说 100 个 JButton)。 当我现在请求添加的组件的高度时,全部为 0。 代码来了:

void AddComponents()

//add 100 Buttons to my jpanel

for (Component component : jpanel.getComponents()) 

      Rectangle test = component.getBounds();

      DebugTextArea.append("\nx: " + test.x + "- y:" + test.y + 
                          "- height: " + test.height + "- width: " + test.width);
        


所有值都是 0。我知道这与绘制组件需要一些时间这一事实有关,但是我怎样才能获得高度,因为我需要组件的高度来将 VerticalScrollBar 设置为某一点。

有什么想法吗?

【问题讨论】:

请学习java命名约定并遵守它们 sry 下次我会努力做得更好 【参考方案1】:

我需要组件的高度来设置 VerticalScrollBar - 不,你不需要(假设这是 JScrollPane 的滚动条,其中包含带有按钮的面板

  button.scrollRectToVisible(button.getBounds())

组件实现后(又名:如图)

【讨论】:

已实现/显示是问题...我添加了按钮,之后仅 2 行(在同一函数中)我将请求大小...并且它响应 0。(你是对的JPanel 在 JScrollPane 中)

以上是关于JComponent 绘制前的高度的主要内容,如果未能解决你的问题,请参考以下文章

我想在背景图像上绘制可拖动的 JComponent

刷新 JComponent 倒计时不起作用

如何将视觉添加到 JComponent

将 JLabel 数组导入 JComponent

如何检查 JScrollPane 中的 JComponent 是不是对用户可见?

JComponent 大小与屏幕大小无关