0

私は GridLayout g = (2,2) を含む 1 つのフレームがあるプログラムを作成しています。これは、基本的に 4 つの部分に分割された正方形を意味します。各部分にパネルを追加し、それに応じて名前を付けました (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 に答える