我应该避免在Java Swing中使用set(Preferred | Maximum | Minimum)Size方法吗?

问题:

几次被批评为建议使用以下方法:

  1.  有必要对setPreferredSize
  2.  了setMinimumSize
  3.  setMaximumSize

Swing组件上。当我想要定义显示组件之间的比例时,我看不到任何替代它们的使用。我被告知这个:

对于布局,答案总是相同的:使用合适的LayoutManager

我在网上搜了一下,但我还没有发现任何关于这个问题的全面分析。所以我有以下问题:

  1. 我应该完全避免使用这些方法吗?
  2. 这些方法是由于某种原因而定义的。那么什么时候应该使用它们?在哪个上下文中?为什么用?
  3. 使用这些方法的负面后果究竟是什么? (我只能认为在不同屏幕分辨率的系统之间增加可移植性)。
  4. 我不认为任何LayoutManager可以完全满足所有需要的布局需求。我真的需要为布局中的每个小变化实现一个新的LayoutManager吗?
  5. 如果4的答案是“是”,这不会导致LayoutManager类的扩散将变得难以维护吗?
  6. 在需要定义组件子项之间的比例的情况下(例如,child1应该占用10%的空间,child2为40%,child3为50%),是否可以在不实现自定义LayoutManager的情况下实现?

我希望清楚。

回答:

  1.  

    Should I completely avoid the use of those methods?

    是的应用程序代码。

  2.  

    The methods have been defined for a reason. So when should I use them? In which context? For what purposes?

    我不知道,我个人认为它是一个API设计事故。稍微强调具有关于儿童大小的特殊想法的复合组件。 “稍微”,因为他们应该使用自定义的LayoutManager来实现他们的需求。

  3.  

    What exactly are the negative consequences of using those methods? (I can only think adding portability between systems with different screen resolution.)

    有些(不完整,不幸的是,由于SwingLabs迁移到java.net,链接被破坏)技术原因例如在他对他的评论my answer中的Rules (hehe)link @bendicott中提到。在社会上,将大量的工作摆放在不幸的同事身上,他必须维护代码,并且必须追踪破碎的布局。

  4.  

    I don’t think any LayoutManager can exactly satisfy all desired layout needs. Do I really need to implement a new LayoutManager for every little variation on my layout?

    是的,布局管理器的强大功能足以满足“所有布局需求”的非常好的近似。大三是JGoodies FormLayout,MigLayout,DesignGridLayout。所以不,在实践中,除了简单的高度专业化的环境之外,很少编写LayoutManager。

  5.  

    If the answer to 4 is “yes”, won’t this lead to a proliferation of LayoutManager classes which will become difficult to maintain?

    (4的答案是“否”。)

  6.  

    In a situation where I need to define proportions between children of a Component (for example, child 1 should use 10% of space, child 2 40%, child 3 50%), is it possible to achieve that without implementing a custom LayoutManager?

    任何一个大三可以,甚至不能GridBag(从来没有打扰真正掌握,太多的麻烦太少的权力)。

 
 
Code问答: http://codewenda.com/topics/python/
Stackoverflow: Should I avoid the use of set(Preferred|Maximum|Minimum)Size methods in Java Swing?

*转载请注明本文链接以及stackoverflow的英文链接

发表评论

电子邮件地址不会被公开。 必填项已用*标注

+ 55 = 57