哪种布局最适合这个界面?我试过FlowLayout
了,但无法将SUBMIT按钮放置在正确的位置。
问问题
612 次
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 回答