Java中的Null布局有什么问题?

你好。

在这个网站上花了无数个小时寻找代码在屏幕上拖动一个组件,我注意到答案中出现了一个奇怪的趋势。

……因为每个人都在零布局的声音中颤抖。

所以我问, 每个人都有什么问题呢? 我已经编写了不超过三个月的编码,使用Swing不超过一个,并且布局已经轻而易举地使用无限的自定义。 为什么这是不好的做法?

主要问题是尝试根据字体和像素的呈现方式确定各个平台的复杂性

由于不同的硬件驱动程序和渲染管道,即使两个运行相同操作系统的系统也可以生成不同的输出。

大部分API已被抽象出来,你永远不应该关心一台PC使用120的DPI并使用DirectX而另一台使用DPI为92并使用OpenGL。

布局管理器使开发人员无需在特定时刻计算组件(及其子组件)的大小,以及计算这些组件之间的关系并以标准化方式进行。

核心Swing API旨在利用此API,因此当组件以某种方式更改以表示大小更改时,将自动通知所有必需的容器,并且可以根据需要调整组件的整个层次结构。

布局管理器的基本思想是描述同一容器上组件之间的关系,并提供有关该容器可能具有多少的信息。 这使您可以专注于UI的用户能力,而不是试图花时间尝试更新UI以满足各种可能的硬件和软件组合。

作为一名前VB开发人员(不,我不为此感到自豪),我可以向你保证,使用它最令人沮丧的部分是尝试开发可用的动态UI,这些UI在下一台客户端计算机上看起来并不好看。

在Swing的所有方面,布局管理是最受欢迎的 – 恕我直言

因为它不是布局。 您所做的只是使用GUI编辑器将组件放在绝对位置。 调整窗口大小或在不同的显示器分辨率下运行代码看起来很糟糕。

寻找代码在屏幕上拖动组件

这是一个不同的要求。 根据定义,当您在屏幕上拖动组件时,无法对该位置进行编程。

说过布局管理器做的更多,然后只需设置组件的位置。 查看拖动布局以获取在这种情况下仍可使用的布局。

对于其他情况,布局管理器(或嵌套布局管理器的组合)如果是设计有效GUI的更好解决方案。

你将失去GUI的一些使用点,因为它很难维护,代码更多,灵活性更低……添加一个额外的按钮会导致你需要做很多重新计算。

我怎么看: http : //leepoint.net/notes-java/GUI/layouts/nulllayout.html