私は 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));