我正在使用这个GUI,但我无法让布局看起来很正确。它应该是这样的:
这是我的代码,只显示了GUI,并注释了一些操作的开始:
android:orientation="vertical"
现在看起来像这样:
答案 0 :(得分:2)
首先:
遵循Java惯例。
Container contentPane = frame.getContentPane();
Container inputPane = frame.getContentPane();
只有一个内容窗格。将内容窗格分配给两个不同的变量并不意味着您可以向内容窗格添加更多组件。
在您的Controls方法中,您使用:
contentPane.setLayout(layout);
更改布局管理器。因此,知道您添加内容窗格的任何组件必须使用您正在更改GroupLayout及其约束。
在您使用的InputPane方法中:
inputPane.add(input);
但是您没有指定任何GroupLayout约束,因此布局管理员不知道如何处理该组件。
我没有看到任何理由有两种方法来构建组件。从您的图像中我看到了一个包含多个组件的面板,因为您决定使用GroupLayout。摆脱这种方法,只需将组件添加到Control方法的GroupLayout中。
contentPane.add(Withdrawl);
contentPane.add(Deposit);
contentPane.add(Transfer);
contentPane.add(Balance);
contentPane.add(CheckingButton);
contentPane.add(SavingsButton);
此外,您只能将这些组件添加到内容窗格中,因为您已尝试使用GroupLayout将每个组件添加到内容窗格。在我看来,您的代码是由IDE生成的代码和一些手动代码的组合。我建议你跳过IDE并自己编写布局代码。
因此,GridBagLayout可能比GroupLayout更容易使用。阅读How to Use GridBagLayout上的SWing教程中的部分,了解更多信息和示例。