这些布局是什么

时间:2012-05-22 22:23:48

标签: java layout

我不知道这些布局是什么。

  1. 第一张图片如何让这组按钮位于TextArea的右侧(请发一些代码示例,谢谢)

  2. 如何让这个JTextArea成为如此大的第一张照片。

  3. 第二张图片如何在面板的左侧和右侧制作这些空白字段。

  4. 第二张图:如何获得JTextArea和JTextField的大小。

  5. 其他的很容易,所以我不会问他们

    First http://img98.imageshack.us/img98/8504/84871015.png

    Second http://img18.imageshack.us/img18/3372/93341349.png

3 个答案:

答案 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)

通过查看图片无法准确判断使用的布局,因为您可以通过多种不同方式实现这些布局。如果考虑调整行为大小,则尤其如此。

但我怀疑答案是:

  1. 在BorderLayout中包含的GridLayout(请参阅:http://docs.oracle.com/javase/tutorial/uiswing/layout/grid.html

  2. 可能使用BorderLayout或GridLayout - 这两个都会扩展文本区域以填充屏幕的相关区域。

  3. 可能是BorderLayout,使用东西方面板作为文本字段。

  4. 再次可能是一个Borderlayout,底部面板中有文本字段。

  5. 虽然您可以使用标准布局管理器清楚地完成所有这些操作,但如果我想复制这些布局,那么我可能会使用MigLayout这是一个非常灵活的通用布局管理器。