我想安排如图所示的组件。我可以通过使用gridbaglayout来做到这一点,但我想使用borderlayout来做到这一点。我尝试过,但无法达到我想要的效果。所以请在这里指导我。 这里的黑色矩形是JPanel,Button等组件。
答案 0 :(得分:4)
如果您只想使用BorderLayout,则需要使用2 BorderLayout。如果您不能使用2个布局,那么您将无法使用GridBagLayout。 这是我所说的:
import java.awt.BorderLayout;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.SwingUtilities;
public class Test {
protected void initUI() {
JFrame frame = new JFrame("test");
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
JPanel panel = new JPanel(new BorderLayout());
JPanel panel2 = new JPanel(new BorderLayout());
panel2.add(new JButton("NORTH"), BorderLayout.NORTH);
panel2.add(new JButton("CENTER"));
panel.add(panel2);
panel.add(new JButton("SOUTH"), BorderLayout.SOUTH);
panel.add(new JButton("EAST"), BorderLayout.EAST);
frame.add(panel);
frame.pack();
frame.setVisible(true);
}
public static void main(String[] args) {
SwingUtilities.invokeLater(new Runnable() {
@Override
public void run() {
new Test().initUI();
}
});
}
}
答案 1 :(得分:3)
边框布局不起作用。这是边框布局示意图:
您将无法将EAST布局放置在右上角 - NORTH将始终浮动到右侧。
编辑:显示自从我使用Swing或AWT以来已经过了多长时间 - 当我这样做时,它是EAST,NORTH,WEST,SOUTH和CENTER。