【问题标题】:Howcome I can't use a BorderLayout with my panel?为什么我的面板不能使用 BorderLayout?
【发布时间】:2012-09-16 18:39:15
【问题描述】:

我正在制作一个程序,其中有一帧,其中包含一个 GridLayout g = (2,2),这意味着本质上是一个正方形,分为四个部分。在每个部分中,我添加了一个面板并相应地命名它们(tl = 左上角,tr = 右下角,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));

【问题讨论】:

    标签: jpanel


    【解决方案1】:

    我几乎可以肯定您不再需要答案,但您需要编辑您的行“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);
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-08-30
      • 2015-07-04
      • 2015-10-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多