【问题标题】:Howto get size of a cell in JGoodies FormLayout如何在 JGoodies FormLayout 中获取单元格的大小
【发布时间】:2014-02-05 17:46:49
【问题描述】:

我想根据单元格的大小调整 JGoodies 表单布局内的图像大小,即,使图像完全适合单元格。如果我理解正确,单元格没有真正的组件,大小只有布局管理器隐式知道,对吗?有什么想法吗?

【问题讨论】:

  • 你是对的,也没有真正的单元格组件。而且您不应该调整单元格内的图像大小以适应单元格。这就是布局管理器的用途。您必须告诉图像或其容器它应该扩展/增长/填充到其单元格大小。不幸的是,我不太了解 jGoodies FormLayout,无法举个例子。
  • 一次性操作没问题,你是对的。但是我希望能够在图像渲染后通过监听窗口上的调整大小事件来调整图像大小。这意味着,如果用户更改窗口大小,布局管理器会重新绘制布局并且单元格会更改大小,但图像已经渲染并且不会动态更改大小。这就是为什么我需要手动执行此操作并需要确切的目标大小。
  • hmmm ... 可能是put the image/panel into a scrollPane,然后您可以在 Scrollable 的更高抽象级别上调整大小提示和图像缩放。

标签: java swing jgoodies


【解决方案1】:

正如 kleopatra 所建议的,我找到了这个解决方案:图像被放在一个滚动窗格中,我得到了单元格的可见大小

javax.swing.JComponent.getVisibleRect().getWidth();

其中 JPanel 是 JComponent...我无法直接粘贴更多代码,因为我们使用了封装 Swing 的其他框架,并且我没有直接对其进行测试,抱歉。如果其他人遇到此问题并使用此解决方案,请添加低级 Swing 代码,谢谢。

感谢您的建议!

【讨论】:

  • 这种方法的一个警告是,在实时调整滚动条的大小时可能会成为一个问题,因为它们会闪烁。我最终设置为始终隐藏它们。
猜你喜欢
  • 2012-02-04
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-01-06
相关资源
最近更新 更多