当前位置: 首页 > 面试题库 >

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

蔺翰音
2023-03-14
问题内容

次批评我建议使用以下方法:

  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的情况下实现这一点?

问题答案:

我应该完全避免使用那些方法吗?

是,表示html" target="_blank">应用程序代码。

出于某种原因定义了这些方法。那么我什么时候应该使用它们呢?在哪种情况下?出于什么目的?

我不知道,我个人认为这是API设计事故。复合组件稍微强加了对子项大小有特殊想法的组件。“轻微”,因为他们应该已经使用自定义LayoutManager实现了他们的需求。

使用这些方法的负面后果到底是什么?(我只能考虑在具有不同屏幕分辨率的系统之间增加可移植性。)

某些技术原因(不完整,不幸的是,由于SwingLabs迁移到java.net而导致链接断开),例如,在“规则”(hehe)或他/她对我的答案的评论中找到的@bendicott链接中提到了技术原因。在社交上,将大量工作交给不幸的同事,他必须维护代码并必须查找损坏的布局。

我认为任何LayoutManager都不能完全满足所有所需的布局需求。我真的需要为我的布局中的每个小变化实现一个新的LayoutManager吗?

是的,有足够强大的LayoutManagers可以很好地满足“所有布局需求”。前三个是JGoodies FormLayout,MigLayout,DesignGridLayout。因此,实际上,除了简单的高度专业化的环境外,您很少编写LayoutManager。

如果对4的回答为“是”,这是否会导致LayoutManager类的泛滥而导致难以维护?

(对4的回答为“否”。)

在需要定义子组件之间比例的情况下(例如,子组件1应使用10%的空间,子组件2应占40%的空间,子组件3应占50%的空间),是否可以在不实现自定义LayoutManager的情况下实现这一点?

三巨头中的任何一个都不能甚至不可以使用GridBag(永远不要操心真正的大师,以太少的力气就麻烦很多)。



 类似资料:
  • 问题内容: 有时是有用的,例如,如果我为网站上的所有链接(例如选择器)定义了通用样式,但是当我要覆盖某些规则时,可以有以下选择: 使用更具体(更长)的选择器 采用 哪种方法更好,可能有一些指导原则? 问题答案: 使用非常,非常谨慎- 它会覆盖刚才的一切,甚至是内联样式和混乱在低于显而易见的方式与样式规则“梯级”,让CSS的名字。它很容易使用不当,而且容易成倍增加,尤其是在滥用时。您可以轻松地得出一

  • 对于与PropertyValueFactory相关的问题,许多回答(和评论)建议避免使用该类和其他类似类。使用这个类有什么问题?

  • 问题内容: 我读到应该避免赞成和。我对弄乱Loop并没有信心,也没有完全理解Codex。 下面的代码是否使用?如果是,并且由于应该避免,那么您能建议一种不使用但仍然完成相同任务的方法吗? 此代码用于按随机或按价格对帖子进行排序。 。 使用此代码将链接A(随机)和链接B(价格)发布在我的菜单中。因此,网站的访问者只需单击链接即可对帖子进行排序。 问题答案: 我已经针对WPSE这个主题做了非常详细的解

  • 问题内容: 今天,我有一个同事建议我重构代码,以使用label语句控制通过我创建的2个嵌套的for循环的流。我以前从未使用过它们,因为我个人认为它们会降低程序的可读性。如果论点足够扎实,我愿意改变使用它们的想法。人们对标签陈述有何看法? 问题答案: 如果您可以跳过两个循环(或一个包含switch语句的循环),则许多算法的表达会更容易。不要为此感到难过。另一方面,它可能表明解决方案过于复杂。因此,退

  • 问题内容: 我曾经在如下所示的接口中一起定义了一组相关的常量(如键): 这为我提供了一种更好的方式将相关常量分组在一起,并通过进行静态导入(而非实现)来使用它们。我知道框架也使用像一样的常量,。 但是,我经常感到,提供代表常数的更好,更强大的方法。 但是使用on 会有性能问题吗? 经过一番研究,我最终陷入了混乱。从这个问题中, 从Android的性能提示中删除了“避免枚举,您只需要整数吗?”很明显

  • 我曾在如下界面中定义一组相关常量,如