Java 桌面应用程序中的布局
我正在开发一个java桌面应用程序,其中包含许多具有不同和相同布局的面板。现在,当我想设置面板新布局时,我总是创建新布局。例如Java 桌面应用程序中的布局,java,swing,layout-manager,Java,Swing,Layout Manager,我正在开发一个java桌面应用程序,其中包含许多具有不同和相同布局的面板。现在,当我想设置面板新布局时,我总是创建新布局。例如 JPanel panel = new JPanel(new GridLayout(0, 1)); 创建一些LayoutFactory并在此处创建我需要的所有布局,然后设置到面板的正确解决方案是什么?1)通过新建GridLayout(0,1)铺设JPanel应与BorderLayout.CENTER相同,或者可以使用BoxLayout,在这种情况下,您只需为整个JPan
JPanel panel = new JPanel(new GridLayout(0, 1));
创建一些LayoutFactory
并在此处创建我需要的所有布局,然后设置到面板的正确解决方案是什么?1)通过新建GridLayout(0,1)
铺设JPanel应与BorderLayout.CENTER
相同,或者可以使用BoxLayout
,在这种情况下,您只需为整个JPanel
放置一个JComponent
2) 最简单的方法是通过嵌套布局来放置JComponents
,其中每个容器可以具有不同、相同的LayoutManager
或它们的组合
3) 通过使用或可能(在大多数情况下)将每个JComponents
一次放置在整个容器或JPanel
hudi中,如果希望使代码更简洁,可以编写创建和分配布局的帮助器方法。如果仅在一个类中设置布局,则帮助器方法可以是该类的private
方法。或者,如果要在各种类中设置布局,则可以将受保护的
帮助程序方法添加到公共超类(如果有)中,或者作为实用程序类上的静态
方法
发布代码的详细信息,我们可以提供更具体的建议。不需要工厂(有些甚至无法共享),那么可以共享的布局又如何呢?例如,当我在我的项目中搜索flowLayout时,我发现我正在创建此布局的大约30个实例。这30个小对象(以及布局管理器都很小)是一个问题吗?#1GridLayout(0,1)
与BorderLayout.CENTER
不同。它定义了一个布局,其中包含一列和添加元素时相同数量的行。即使是GridLayout(1,1)
在添加更多元素时也不会只有一个单元格,而是动态添加列BoxLayout
具有不同的效果,它不会调整组件的大小#3 JGoodies FormLayout也是一个很好的选择。