这个界面最合适的布局是什么?我已尝试FlowLayout
,但无法将 SUBMIT 按钮放在正确的位置。
答案 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);
}
}
您只需根据需要对按钮上的数字进行排序。
答案 1 :(得分:1)
BorderLayout.CENTER
。答案 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);