我对java(特别是swing)相对较新,并且最近一直在制作一些相当简单的应用程序,随时随地学习。最新版本具有许多表单组件,如JLabel,JTextFields,JButtons等。所有组件都使用可视化构建器放置在NetBeans中。我不得不说我并没有真正接受NetBeans,而是真正设计了GUI并将代码直接复制到Eclipse。
我的问题是:是否值得对GroupLayout进行非常好的理解并手动编码(因此可以更好地控制我的GUI)或继续按原样继续?
答案 0 :(得分:11)
我认为值得花一些时间来理解GroupLayout
,只因为理解你的IDE在做什么总是一个好主意。了解幕后发生的事情实际上会让您更加灵活,因为如果您在无法访问Netbeans的情况下结束,您将知道如何复制它为您生成的布局。此外,在你获得了相当多的经验之后,你可能最终会节省时间。您通常可以手动开发一个简单的GUI,而不是使用可视化编辑器,特别是考虑到将代码从Netbeans复制并粘贴到Eclipse所需的时间。
当然,学习如何手动使用GroupLayout
也可以让您更轻松地过渡到Java提供的任何其他布局管理器,这反过来又可以使代码更简单,节省更多时间
答案 1 :(得分:10)
GroupLayout
并非真正用于手动编码;它比任何其他布局管理器都要冗长得多(除了可能GridBagLayout
之外)。既然你说你是Swing的新手,我建议从基本布局管理器开始(BorderLayout
和FlowLayout
);您可以通过右键单击面板或框架并选择“设置布局”在NetBeans中使用它们。在您熟悉这些内容后,我建议您查看MiGLayout
。
回答您的另一个问题:我认为NetBeans表单设计器与计算器类似;如果你已经掌握了基础知识,这是一个很棒的工具,但是如果你只是把它作为拐杖那么你将永远学不到任何东西。
答案 2 :(得分:3)
GroupLayout
值得学习以编程方式使用。
我使用GroupLayout
作为我创建的几乎每个使用标准Swing组件的面板的默认布局。我发现结果总是非常令人愉悦并且很好地调整大小。我总是设置这些选项:
groupLayout.setAutoCreateGaps(true);
groupLayout.setAutoCreateContainerGaps(true);
重复使用这种布局不仅给了我很好看的布局,而且它给了我一些低级别的经验,能够将一些复杂的面板与编译时未知的许多组件组合在一起。我还发现,当组件数量是动态的时,我可以布置所有组件,然后使用setVisible(boolean)
打开和关闭它们,而无需重新创建水平和垂直组。
答案 3 :(得分:1)
大多数更复杂的布局管理器并不是手工编码的。你可以做到,但是从现在起几个月你就可能无法理解自己的布局。 GroupLayout也不例外,更糟糕的是它根本不直观,你必须扭曲你的想法,迫使你的布局成为GroupLayout术语。
我认为这些布局管理人员不值得学习。 GridBagLayout是最糟糕的。它有比你可能想到的更多的选择,而且它们似乎永远不会做你认为他们做的事情。 MiGLayout非常强大,相当直观,而且大多数都是你认为它做的,但我仍然认为它太强大而且太复杂了,程序员自己也不错。 GroupLayout不是那么强大,不直观,不值得麻烦。
我多年来制定Java GUI并对其进行维护的建议是学习和使用最强大的布局管理器,您可以在两小时内掌握并且永远不会忘记,然后使用此布局管理器使用嵌套容器布局GUI和基本的BorderLayout / GridLayout / FlowLayout / BoxLayout。
答案 4 :(得分:0)
如果您倾向于VB程序样式,那么您可以花时间在GroupLayouts上。否则尝试使用合适的示例来理解GridBagLayout Manager。对于那些希望每个gui组件都应该在我们的笔控制之下的人来说是最好的(我们应该编写而不是IDE)。一个优秀的Java开发人员应该花时间在gui对象和业务对象上,并且必须知道如何分离它们。 L.Sankaranarayanan。