不确定我的需要是否可行.我有一个包含一些内部元素的容器(JPanel).我想知道是否有可能强制内部元素适应容器的大小.我需要它们完全可见,即调整大小以适应Panel的大小,而不是剪切内部元素的某些部分.
滚动不是一种选择.
这是否可以通过使用布局或其他东西?
编辑:重要的澄清:问题是我无法访问内部元素也不能访问它们的属性所以我想说一个Layoutmanager能够调整子元素的大小以适应它的大小.我测试了BorderLayout和GridBagLayout,但结果始终相同,内部元素被删除.
您可以将JPanel
布局设置为边框布局,然后将单个子项添加到中心.如果有多个孩子,这种做法变得越来越有用,因为组件添加到了NORTH
,SOUTH
,EAST
,和WEST
将保持静态大小而中心调整大小以填补剩余.
简而言之,这不是一个理想的解决方案.由于不同的组件以不同的方式运行,因此Swing中的所有布局都变得更加复杂,因此您确实需要提供要添加到面板的子组件的更多详细信息,以及已在这些组件上覆盖的任何行为组件.
最好的方法是尝试几个简单的例子,看看你得到的里程数以及你的子组件嵌套的细微重新设计是否有帮助.