首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >你推荐哪种挥杆布局?

你推荐哪种挥杆布局?
EN

Stack Overflow用户
提问于 2009-12-02 11:49:03
回答 12查看 46.6K关注 0票数 44

仅Java库中就有8个布局管理器,还有一堆第三方产品。

前几天,我试着用SpringLayout .好吧,这对我不管用。看看我的其他问题。所以..。如果你有一个要设计的Swing应用程序,并且你希望你的布局就是这样,你喜欢的布局管理器是什么?有什么有趣的/有用的经验吗?

更新:是的,当然我知道不同的适合不同的布局。但我想,你们大多数人都会用1,2或3来做你所做的每件事,或者,你们会用一种用途广泛的,你再也不需要其他东西的方式发誓。如果有足够的响应,我希望看到类似于钟形曲线的东西,比如在GridBagLayout或MigLayout上有一个峰值,使用(比方说) BoxLayout或FlowLayout的几个散乱者的长尾。

希望响应的分布将揭示一些趋势,即人们使用什么来完成™工作。

更新和摘要

好的,过了将近两天,MiGLayout绝对领先了!它的粉丝们会很高兴听到这个版面看起来很快就会进入“官方”图书馆。

GroupLayout、FormsLayout和TableLayout都是相对较新的,而且没有得到太多的曝光。也许其他人会和我一样惊讶地发现他们的情况。

EN

回答 12

Stack Overflow用户

回答已采纳

发布于 2009-12-02 11:55:09

毫无疑问,MiGLayout。老实说,这是我所知道的唯一有意义的摇摆布局管理器。

仅是在核心JDK中有8个布局管理器这一事实就是一个好迹象,表明Swing创建者完全不知道他们想要做什么。这不是要破坏其余的Swing -它是一个很好的GUI工具包,除了布局管理器。

票数 67
EN

Stack Overflow用户

发布于 2009-12-03 07:23:14

所有的,结合在一起。,这就是重点。每个布局管理器都满足不同的需求,通过使用不同的布局管理器嵌套面板,您几乎可以实现任何目标。

“在一个面板中做每件事”的布局管理器,比如GridBagLayoutGroupLayout (以及很多第三方的)都有自己的位置,主要是当您需要布局的不同部分中的组件来对齐时,但是使用大型布局时,它们通常会造成巨大的、难以处理的混乱。

票数 23
EN

Stack Overflow用户

发布于 2009-12-03 08:12:10

这取决于您正在创建的GUI类型。您可能只使用一两个简单的布局,或者您可能需要达到一个更高级的布局。我的总体布局管理器的使用可能会细分为类似这样的东西,尽管它会根据项目而有所不同:

  • 65%的GridBagLayout -一个布局将完成它,无论你需要做什么。
  • 15% Box/BoxLayout -非常适合快速和容易地将几个组件粘在一起。
  • 12% BorderLayout -很好的附加按钮面板或信息面板到内容面板。我几乎总是使用它向JFrame添加内容。
  • 3% FlowLayout -适用于按钮面板,但没有太多其他。
  • 3% CardLayout -主要用于显示不同操作模式的不同内容面板的程序。
  • 2%的其他布局-这是非常罕见的,我需要任何其他东西,但偶尔其他布局之一会派上用场。

一旦掌握了GridBagLayout的诀窍,最初编写并不是那么糟糕,但使用它或稍后进行调试仍然不太好。最近,我尝试了一些MiGLayout,但失望地发现,在这种情况下,MiGLayout的使用实际上比GridBagLayout更复杂。

有些人试图像避免瘟疫一样避免GridBagLayout;但事实是,有些事情没有简单的布局组合就能处理。可以将GUI划分为不同逻辑部分的面板,但我认为,如果您只是为了定位组件而创建大量不必要的额外嵌套面板,那么显然需要学习如何使用GridBagLayout (或其他类似的高级布局,如MiGLayout)。您可能会让您的GUI看起来与嵌套的BorderLayouts、GridLayouts和BoxLayouts混在一起,但一旦有人开始调整您的应用程序窗口和对话框的大小,使其比最初设计的更小或更大,您的GUI可能会看起来很糟糕,而且您的客户将开始对您的产品形成负面的看法,因为您无法正确地处理这么简单的事情。

更新:我在Eclipse中使用WindowBuilder已经有一段时间了,它极大地简化了许多布局的工作,特别是GridBagLayout。我过去花了很多时间手工编写布局,但是使用WindowBuilder或任何类似的高级可视化编辑器,您可以在更短的时间内创建布局。

票数 18
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1832432

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档