0

我正在制作一个程序,其中有一帧,其中包含一个 GridLayout g = (2,2),这意味着本质上是一个正方形,分为四个部分。在每个部分中,我添加了一个面板并相应地命名它们(tl = 左上角,tr = 右下角,bl = 左下角,br = 右下角)现在我想将面板添加到这些面板中。我想将 Panel tl 的布局设置为 BorderLayout,然后将另一个面板 - 称为 tl1 - 添加到 tl。这是我的代码,但由于某种原因它不会让我这样做。我是 java 的初学者,所以我不太确定一切是如何工作的,所以这可能是一个愚蠢的问题,但是当我查看边框布局的语法时,它说它是这样写的 (component, 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));
4

1 回答 1

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);
于 2013-03-04T19:00:11.987 回答