3

几个月前,我阅读了这篇 Swing 教程http://zetcode.com/tutorials/javaswingtutorial/resizablecomponent/以了解如何在 Swing 中实现可调整大小的组件。

本教程讲述了使用 null LayoutManager 以便有可能绝对定位子组件。

在与另一个主题相关的讨论中,@Andrew Thompson 指出使用空布局是一个坏主意。这篇文章http://download.oracle.com/javase/tutorial/uiswing/layout/none.html也将空布局管理器描述为不可取的,无论如何它说在某些情况下可能有用。

在以下情况下:

  1. 我需要 JPanel 的子组件的绝对定位
  2. 我需要为子组件实现自己的边界框条件(以建立可能的重叠情况)
  3. 我需要 JPanel 的子组件可调整大小

在所描述的情况下使用空布局管理器是否正确?

或者还有其他更好的解决方案可以使用我的 JPanel 容器组件的布局管理器来实现该目标?

提前致谢

4

1 回答 1

2

您最好的解决方案是使用您正在寻找的功能和控件来实现您自己的LayoutManager(或扩展现有的,如果一个非常接近您的需求)。您的绝对定位要求将简单地成为您的布局管理器的一种方法。

例如,在过去,我遵循了扩展技术,FlowLayout使其能够在包含在JScrollPane. 这是一个示例,尽管这与我使用的示例不同。

于 2011-03-26T13:18:44.027 回答