我曾多次因建议使用以下方法而受到批评:
- setPreferredSize
- setMinimumSize
- setMaximumSize
在Swing
组件上。当我想定义显示组件之间的比例时,我看不到任何替代方法。有人告诉我:
对于布局,答案总是一样的:使用合适的
布局经理
我在网上搜索了一下,但没有找到任何关于这个主题的全面分析。因此,我有以下问题:
- 我应该完全避免使用这些方法吗
- 定义这些方法是有原因的。那么我应该什么时候使用它们呢?在哪种情况下?为了什么目的
- 使用这些方法的负面后果到底是什么?(我只能考虑在不同屏幕分辨率的系统之间增加可移植性)
- 我认为任何布局经理都不能完全满足所有期望的布局需求。我真的需要为布局上的每一个小变化实施一个新的LayoutManager吗
- 如果对4的回答是“是”,这是否会导致LayoutManager类的激增,这将变得难以维护
- 如果我需要定义组件子级之间的比例(例如,child1应使用10%的空间,child2应使用40%,child3应使用50%),是否可以在不实施自定义LayoutManager的情况下实现这一点
-
我应该完全避免使用这些方法吗
申请代码是
-
定义这些方法是有原因的。那么我应该什么时候使用它们呢?在哪种情况下?为了什么目的
我不知道,我个人认为这是一个API设计事故。对子尺寸有特殊想法的复合组件稍微施加压力。“轻微”,因为他们应该通过定制的LayoutManager实现他们的需求
-
使用这些方法的负面后果到底是什么?(我只能考虑在不同屏幕分辨率的系统之间增加可移植性。)
例如规则(呵呵)或在在bendicott对我的答案。在社交方面,把大量的工作强加给你的不幸伙伴,他必须维护代码,并且必须追踪一个坏的布局
-
我认为任何布局经理都不能完全满足所有期望的布局需求。我真的需要为布局上的每一个小变化实施一个新的LayoutManager吗
是的,有足够强大的布局管理器,能够很好地满足“所有布局需求”。三大布局分别是JGoodies FormLayout、MigLayout、DesignGridLayout。因此,实际上,除了简单的高度专业化的环境之外,您很少编写LayoutManager
-
如果对4的回答是“是”,这是否会导致LayoutManager类的激增,这将变得难以维护
(4的答案是“否”。)
-
在需要定义组件子级之间比例的情况下(例如,子级1应使用10%的空间,子级2应使用40%,子级3应使用50%),是否可以在不实施自定义LayoutManager的情况下实现这一点
三巨头中的任何一个都可以,甚至连GridBag都不能(从来都懒得真正掌握,太麻烦了,功率太小了)