【发布时间】:2013-02-12 03:54:18
【问题描述】:
哪种布局最适合这个界面?我已尝试FlowLayout,但无法将 SUBMIT 按钮放置在正确的位置。
【问题讨论】:
标签: java swing applet awt layout-manager
哪种布局最适合这个界面?我已尝试FlowLayout,但无法将 SUBMIT 按钮放置在正确的位置。
【问题讨论】:
标签: java swing applet awt layout-manager
我推荐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);
}
}
您只需根据需要对按钮上的数字进行排序。
【讨论】:
BorderLayout.CENTER 提交。【讨论】:
我在 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);
【讨论】: