java-gui布局问题

来源:百度知道 编辑:UC知道 时间:2024/05/12 11:02:42
将组件布局为如下形式
AAAAAAAABBB
AAAAAAAABBB
AAAAAAAABBB
AAAAAAAABBB
CCCCCCCCCCC
CCCCCCCCCCC
CCCCCCCCCCC
其中A、B、C都是JPanel,但是一定要分开布局,不能合在一起,即:先把A、B、C分别组合在一起成为整体,再布局……
有什么好的布局方式?
最后三排都多了一个C。就是所有的A、B、C加在一起是JPanel,大小和上面一样的比例。

import java.awt.GridBagConstraints;
import java.awt.GridBagLayout;

import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JPanel;

public class GridBagFrame extends JFrame{ private void initUI(){
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
this.setSize(400, 400);
this.getContentPane().add(getMainPanel());
this.setVisible(true);
}
public GridBagFrame(){
initUI();
}
private JPanel getLeftPanel(){
JPanel panel = new JPanel();
panel.setLayout(new GridBagLayout());
JButton button1 = new JButton("B1");
JButton button3 = new JButton("B3");
GridBagConstraints b1C = new GridBagConstraints();
b1C.gridx = 0;
b1C.gridy = 0;
b1C.weightx = 1.0;
b1C.weighty = 2.0;
b1C.fill = GridBagConstraints.BOTH;
panel.add(button1, b1C);
b1C.gridx = 0;
b1C.gridy = 1;
b1C.weighty = 1.0;