我不知道这些布局是什么。
首先图片如何使这组按钮位于 TextArea 的右侧(请发布一些代码示例,谢谢)
如何使这个 JTextArea 如此大的图片。
第二张图片如何在面板的左侧和右侧制作这些空字段。
第二张图:如何获得 JTextArea 和 JTextField 的大小。
其他的很简单,所以我不问他们
我不知道这些布局是什么。
首先图片如何使这组按钮位于 TextArea 的右侧(请发布一些代码示例,谢谢)
如何使这个 JTextArea 如此大的图片。
第二张图片如何在面板的左侧和右侧制作这些空字段。
第二张图:如何获得 JTextArea 和 JTextField 的大小。
其他的很简单,所以我不问他们
虽然实现这些布局的方法不止一种,但我猜你正在看的GridBagLayout
是最灵活但也是最难做到的。
您的第一张图片有六行四列。字段占据前三行的所有列;文本区域占据第四行到第六行的第一列;按钮占据单个单元格。
您的第二张图片有四行六列。文本区域为一列三行,文本字段为一行六列,按钮为每个单元格。
Oracle 提供了一个关于它的教程- 如果您通过他们的示例工作,您应该能够制作自己的布局,看起来像您图片中的布局。
仅通过查看图片就无法准确判断使用了哪种布局,因为您可以通过多种不同的方式实现这些布局。如果您考虑调整行为的大小,则尤其如此。
但是我怀疑答案是:
可能是包含在 BorderLayout 中的 GridLayout(参见:http ://docs.oracle.com/javase/tutorial/uiswing/layout/grid.html)
可能使用 BorderLayout 或 GridLayout - 这两者都会扩展文本区域以填充屏幕的相关区域。
可能是一个 BorderLayout,使用东和西面板作为文本字段。
同样可能是一个边框布局,底部面板中有文本字段。
虽然您可以使用标准布局管理器清楚地完成所有这些工作,但如果我想复制这些布局,那么我可能会使用MigLayout,它是一个非常灵活的通用布局管理器。
这JButtons
是按用途放置的,GridBagLayout()
我给你一些类似的例子如何做到这一点。
controls = new JPanel();
controls.setLayout(new GridBagLayout());
GridBagConstraints d = new GridBagConstraints();
d.fill = GridBagConstraints.BOTH;
d.weightx = 1;
d.weighty = 1;
seven = new JButton("7");
buttonsList.add(seven);
d.gridx = 0;
d.gridy = 2;
d.insets = new Insets(0, 4, 4, 4);
controls.add(seven, d);
eight = new JButton("8");
buttonsList.add(eight);
d.gridx = 1;
d.gridy = 2;
d.insets = new Insets(0, 0, 4, 4);
controls.add(eight, d);
nine = new JButton("9");
buttonsList.add(nine);
d.gridx = 2;
d.gridy = 2;
d.insets = new Insets(0, 0, 4, 4);
controls.add(nine, d);
plus = new JButton("+");
buttonsList.add(plus);
d.gridx = 3;
d.gridy = 2;
controls.add(plus, d);
four = new JButton("4");
buttonsList.add(four);
d.gridx = 0;
d.gridy = 3;
d.insets = new Insets(0, 4, 0, 4);
controls.add(four, d);