1

哪种布局最适合这个界面?我试过FlowLayout了,但无法将SUBMIT按钮放置在正确的位置。

4

3 回答 3

2

我推荐miglayout,它非常易于使用,并且它总是可以处理我要扔的东西。

在这种情况下,我将创建两个面板。第一个面板有一个“wrap 3”约束作为 miglayout 构造函数的参数,第二个只有一个按钮,添加了一个“alignx center, aligny center”约束。

这是一个例子:

public class TestApplet extends JApplet{

@Override
public void init() {
    super.init();
    setSize(400, 300);
    setLayout(new MigLayout("fill, insets 0"));

    JPanel leftPanel = new JPanel(new MigLayout("wrap 3"));
    for (int i = 0; i < 9; i++) {
        leftPanel.add(new JButton(""+i));
    }
    add(leftPanel);

    JPanel rightPanel = new JPanel(new MigLayout());
    rightPanel.add(new JButton("submit"), "alignx center, aligny center");
    add(rightPanel);


}   
}

在此处输入图像描述

您只需根据需要对按钮上的数字进行排序。

于 2013-02-26T16:04:36.590 回答
1
  • 第一个具有两列的网格布局。
  • 在第一列添加 panal1 并在第二列添加提交BorderLayout.CENTER
  • 在该 panal1 中,您可以使用 3x3 网格布局。
于 2013-02-26T15:55:03.450 回答
0

我在 JFrame 上尝试过这个,你可以在你的小程序中做同样的事情。

创建一个一行两列的网格。
在第二个面板上创建一个带有页面轴的框布局,然后确保您有垂直胶水,按钮位于中心。创建一个 3x3 的网格并添加按钮。

代码示例:

    JFrame frame = new JFrame();

    frame.setLayout(new GridLayout(1, 2));
    JPanel leftPanel = new JPanel(new GridLayout(3, 3));
    for(int i=0;i<9;i++)

    {
        JButton button = new JButton();
        button.setText(i+"");
        leftPanel.add(button);
    }
    frame.add(leftPanel);
    JPanel rightPanel = new JPanel();
     BoxLayout layout = new BoxLayout(rightPanel, BoxLayout.PAGE_AXIS);
     rightPanel.setLayout(layout);

     JButton button = new JButton("Submit");
         button.setAlignmentX(
     Component.CENTER_ALIGNMENT);
     rightPanel.add(Box.createVerticalGlue()); //Ensure this order
     rightPanel.add(button);
     rightPanel.add(Box.createVerticalGlue());


    frame.add(rightPanel);
    frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    frame.setVisible(true);
于 2013-02-26T16:32:26.270 回答