Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/314.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何在JGoodies FormLayout中获取单元格的大小_Java_Swing_Jgoodies - Fatal编程技术网

Java 如何在JGoodies FormLayout中获取单元格的大小

Java 如何在JGoodies FormLayout中获取单元格的大小,java,swing,jgoodies,Java,Swing,Jgoodies,我想根据单元格的大小调整JGoodies表单布局中的图像大小,即使图像完全适合单元格。如果我理解正确的话,单元没有实际的组件,只有布局管理器才能隐式地知道大小,对吗?有什么想法吗?根据克利奥帕特拉的建议,我找到了这个解决方案:将图像放在滚动窗格中,通过 javax.swing.JComponent.getVisibleRect().getWidth(); 其中JPanel是一个JComponent。。。我不能直接粘贴更多的代码,因为我们使用其他包装Swing的框架,我没有直接测试,对不起。如果

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

根据克利奥帕特拉的建议,我找到了这个解决方案:将图像放在滚动窗格中,通过

javax.swing.JComponent.getVisibleRect().getWidth();
其中JPanel是一个JComponent。。。我不能直接粘贴更多的代码,因为我们使用其他包装Swing的框架,我没有直接测试,对不起。如果其他人有此问题并使用此解决方案,请添加低级Swing代码,谢谢


谢谢你的建议

你是对的,没有真正的细胞成分。您不应该调整单元格内图像的大小以适应单元格。这就是布局管理器的作用。您必须告诉图像或其容器它应该扩展/增长/填充到其单元格大小。不幸的是,我对jGoodies FormLayout不太了解,所以给你举个例子。这对于一次性操作来说没有问题,你是对的。但我希望能够在渲染图像后,通过侦听窗口上的调整大小事件来调整图像的大小。这意味着,如果用户更改窗口大小,布局管理器将重新绘制布局,单元将更改大小,但图像已渲染,并且不会动态更改大小。这就是为什么我需要手动执行此操作,并需要精确的目标大小。hmmm。。。如果可能,那么您可以在更高抽象级别的滚动条上调整大小提示和图像缩放。这种方法的一个警告是,在实时调整滚动条的大小可能会成为一个问题,因为它们会闪烁。最后我总是把它们藏起来。