适用于此接口的Java applet布局?

时间:2013-02-26 15:53:11

标签: java swing applet awt layout-manager

这个界面最合适的布局是什么?我已尝试FlowLayout,但无法将 SUBMIT 按钮放在正确的位置。

3 个答案:

答案 0 :(得分: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);


}   
}

enter image description here

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

答案 1 :(得分:1)

  • 第一个网格布局,有两列。
  • 在第一列中添加panal1,在第二列中添加提交BorderLayout.CENTER
  • 在该panal1中,您可以使用3x3网格布局。

答案 2 :(得分:0)

我在JFrame上尝试了这个,你可以在你的applet中做同样的事情。

创建一行两列的网格  使用Page Axis在第二个面板上创建一个Box Layout,然后确保在中心有按钮的垂直胶水。  创建一个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);