Java 中的空布局有什么问题? [复制]

2024-03-17

Bonjour.

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

...每个人都对空布局的声音感到不寒而栗。

所以我问,大家都有什么问题吗?我编写代码的时间不超过三个月,使用 Swing 的时间也不超过一个月,而且布局使用起来非常轻松,并且可以进行无限的自定义。为什么这是不好的做法?


主要问题是尝试确定各个平台的字体和像素渲染方式等方面的复杂性

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

大部分 API 已被抽象化,您永远不必关心一台 PC 使用 DPI 120 并使用 DirectX,而另一台 PC 使用 DPI 92 并使用 OpenGL。

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

核心 Swing API 被设计为利用此 API,因此当组件以某种方式发生变化(表示大小发生变化)时,所有所需的容器都会自动收到通知,并且可以根据需要调整组件的整个层次结构。

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

作为一名前 VB 开发人员(不,如果是的话我并不自豪),我可以向您保证,使用它最令人沮丧的部分是尝试开发可用的动态 UI,而这些 UI 在下一个客户端计算机上看起来并不糟糕。

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

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Java 中的空布局有什么问题? [复制] 的相关文章

随机推荐

  • HList 只不过是一种复杂的元组编写方式吗?

    我真的很想找出差异所在 更一般地说 是为了识别不能使用 HList 的规范用例 或者更确切地说 与常规列表相比不会产生任何好处 我知道有 22 个 我相信 TupleN在 Scala 中 而只需要一个 HList 但这不是我感兴趣的概念差异
  • 客户希望网站上有“不可复制的图像”[关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • 发现此文件读取代码中的错误(C++)

    谁能告诉我为什么这个方法不能编译 void Statistics readFromFile string filename string line ifstream myfile filename if myfile is open whi
  • 从 Qt 中的 pro 文件获取值

    我在 Windows XP 中使用 Qt 4 5 我的 pro 文件有变量VERSION 1 0 现在我需要读取这个变量并获取它的值 1 0 来自源代码 这样我就不必在源代码中维护版本的另一个变量 我刚刚读取了 pro 文件并更新了它 这样
  • GS1条码中FNC1字符的实际ASCII值是多少?

    我在维基百科上搜索了很多页面 官方的 GS1 规格 但尚未找到问题的明确答案 GS1 FNC1 字符的实际十六进制 二进制值是多少 有很多关于如何使用 GS1 标识符 如何使用 ZPL 打印条形码以及如何对 FNC1 进行编码的信息 但我想
  • 关于 VB6 / VBA 中 CreateObject() 的问题

    我可以做这个 Dim fso As New FileSystemObject 或者我可以这样做 Dim fso As Object Set fso CreateObject Scripting FileSystemObject 我如何知道
  • 如何调试 strace 中显示的 futex 争用?

    我正在调试多线程 Linux 进程中的一个问题 其中某个线程似乎没有执行几秒钟 查看 strace 输出发现它等待 futex 例如1673109 14 36 28 600329 futex 0x44b8d20 FUTEX WAIT PRI
  • Office剪贴板格式

    如果我从 Excel 2007 复制图形并在另一个 Office 应用程序中选择 选择性粘贴 我会看到一种名为 Microsoft Office 图形对象 的剪贴板格式 它允许与增强型图元文件不同的自定义 如何从我自己的 C 应用程序创建这
  • 下载 iAP 托管内容卡在 SKDownloadState 等待某些用户

    和标题说的差不多 该代码适用于沙盒环境中的所有开发设备以及大多数用户 然而 有些用户报告说 即使整夜下载过程也不会超出等待状态 SKDownloadStateWaiting 有些人确实在几次尝试后设法开始下载 完全关闭应用程序并通过恢复购买
  • 需要用户输入的 ffmpeg cli 过滤器

    有没有办法为 ffmpeg 编写过滤器脚本 这样当我给出输入时 过滤器就会改变行为 例如 在录制流时 使用某个键更改对比度 或者使用另一个键混合两个视频 我已经看到我可以以静态方式执行此操作 例如使用新行为重新启动记录 然后调用 conca
  • 函数式编程的分析与设计[关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • 升级到 El Capitan 后出现无效的活动开发人员路径错误

    当我输入 git init 时 我在尝试推送到 git 时遇到了这个错误 xcrun 错误 无效的活动开发人员路径 Library Developer CommandLineTools 缺少 xcrun 库 开发人员 CommandLine
  • 如何从 Google 云端硬盘视频获取redirector.googlevideo.com 链接

    我有一个谷歌驱动器视频文件 例如https drive google com file d FILE ID view https drive google com file d FILE ID view 并且我想获取其redirector
  • 实用地将数据从 Neo4j 导出到 csv 文件

    我需要你关于 neo4j 导出的建议 我使用 apoc export cypher query 将节点和关系导出到 csv 文件 但是导出的内容是 cypher 语句 这是导出的 csv 文件示例 begin CREATE ITEM UNI
  • 如何检查字符串是否包含从a到z的任何字母? [复制]

    这个问题在这里已经有答案了 可能的重复 C 正则表达式 检查 a z 和 A Z https stackoverflow com questions 6017778 c sharp regex checking for a z and a
  • fullCalendar 多日活动开始和结束时间

    多日活动很少有一个开始和一个结束时间 例如 伯明翰动漫展可能会持续三天 但你不能在凌晨 1 点出现 活动举办的三天中 每一天都有单独的开始和结束时间 我无法在文档中找到有关每个事件的多个开始和结束时间的任何内容 还有其他人吗 Edit 如果
  • 使用 Matplotlib 绘制网格

    我想在Python中使用Matplotlib绘制一个自定义的网格 我知道的np meshgrid函数 可以使用它来获取我想要连接的不同点的数组 但我不确定如何绘制网格 代码示例 x np linspace 0 100 100 y np li
  • 如何比较两个 X509Certificate2 c#

    如何比较两个 X509Certificate2 对象 我需要查找两个证书是否相同 它用于用户身份验证目的 我需要查找两个证书是否属于同一个人 我可以使用其序列号或指纹属性吗 或者还有其他方法吗 另外我对此很陌生 想知道使用 X509Cert
  • 为什么盒子阴影和元素之间有间隙?

    当将鼠标悬停在 Chrome 76 0 3809 100 64 位 中的按钮上时 框阴影和 img 之间会出现微弱的间隙 为什么会发生这种情况以及如何修复它 这是一张图片 以防您在代码片段中看不到它 body background colo
  • Java 中的空布局有什么问题? [复制]

    这个问题在这里已经有答案了 Bonjour 在花了无数时间在这个网站上寻找在屏幕上拖动组件的代码后 我注意到答案中出现了一个奇怪的趋势 每个人都对空布局的声音感到不寒而栗 所以我问 大家都有什么问题吗 我编写代码的时间不超过三个月 使用 S