我不知道这些布局是什么。
第一张图片如何让这组按钮位于TextArea的右侧(请发一些代码示例,谢谢)
如何让这个JTextArea成为如此大的第一张照片。
第二张图片如何在面板的左侧和右侧制作这些空白字段。
第二张图:如何获得JTextArea和JTextField的大小。
其他的很容易,所以我不会问他们
答案 0 :(得分:2)
虽然实现这些布局的方法不止一种,但我猜你正在考虑GridBagLayout
,这是最灵活但也是最难实现的方法。
你的第一张照片有六行四列。 Fields占据前三行中的所有列;文本区占据第4到第6行的第一列;按钮占据了单个细胞。
你的第二张照片有四行六列。文本区域是一列三行,文本字段是一行六列,按钮是每个单元格。
Oracle提供了tutorial - 如果您完成他们的示例,您应该能够创建自己的图片中的布局。
答案 1 :(得分:1)
使用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);
答案 2 :(得分:1)
通过查看图片无法准确判断使用的布局,因为您可以通过多种不同方式实现这些布局。如果考虑调整行为大小,则尤其如此。
但我怀疑答案是:
在BorderLayout中包含的GridLayout(请参阅:http://docs.oracle.com/javase/tutorial/uiswing/layout/grid.html)
可能使用BorderLayout或GridLayout - 这两个都会扩展文本区域以填充屏幕的相关区域。
可能是BorderLayout,使用东西方面板作为文本字段。
再次可能是一个Borderlayout,底部面板中有文本字段。
虽然您可以使用标准布局管理器清楚地完成所有这些操作,但如果我想复制这些布局,那么我可能会使用MigLayout这是一个非常灵活的通用布局管理器。