为什么我不能在我的面板上使用BorderLayout?

时间:2012-09-16 18:39:15

标签: jpanel

我正在制作一个程序,其中有一个框架,其中包含一个GridLayout g =(2,2),这意味着基本上是一个分为四个部分的正方形。在每个部分中,我添加了一个面板并相应地命名它们(tl =左上角,tr = pright,bl =左下角,br =右下角)现在我想在这些面板中添加面板。我想将Panel tl的布局设置为BorderLayout,然后将另一个面板(称为tl1)添加到tl中。这是我的代码,但由于某种原因,它不会让我这样做。我是java的初学者,所以我不确定一切是如何工作所以这可能是一个愚蠢的问题,但是当我看到边框布局的语法时,它说它写得像(组件,BORDER.LAYOUT North) ) 或者其他的东西。 JPanel不是一个组件,这就是为什么这不起作用?

public class BattleShipGrid {
JFrame frame  = new JFrame("Battleship");
//JPanel tl = new JPanel();
JPanel tl = new JPanel();
JPanel tl1 = new JPanel();
JPanel tr = new JPanel();
JPanel bl = new JPanel();
JPanel br = new JPanel();

JButton  b1 = new JButton();

GridLayout g = new GridLayout(2,2,2,2);
GridLayout gtl = new GridLayout(11,11,2,2);

JButton[][] tlba;

public BattleShipGrid(){
frame.setVisible(true);
frame.setSize(800,800);
frame.setBackground(Color.RED);
frame.setLayout(g);
frame.add(tl);tl.setBackground(Color.GREEN);
tl.setLayout(new BorderLayout());
frame.add(tr);//tr.setBackground(Color.BLUE);
frame.add(bl);//bl.setBackground(Color.GREEN); 
frame.add(br);//br.setBackground(Color.YELLOW);
/*GridBagConstraints gbc = new GridBagConstraints();
gbc.insets = new Insets(15,15,0,0);
tl.setLayout(gtl);
gbc.gridx = 3;
gbc.gridy = 3;
tl1.add(b1); 
*/
//ADD A TOOLBAR SO THAT THE USER CAN MAKE A NEW GAME OR ACCESS OTHER OPTIONS
tl1.setBackground(Color.yellow);
tl.add(tl1, BorderLayout); 

tl1.setPreferredSize(new Dimension(200,200));

1 个答案:

答案 0 :(得分:0)

我几乎可以肯定你不再需要答案,但你需要编辑你的行“tl.add(tl1,BorderLayout);”这些中的任何一个

tl.add(tl1, BorderLayout.NORTH);
tl.add(tl1, BorderLayout.EAST);
tl.add(tl1, BorderLayout.CENTER);
tl.add(tl1, BorderLayout.SOUTH);
tl.add(tl1, BorderLayout.WEST);