在 BorderLayout 中添加 JPanel?

Add JPanel inside of a BorderLayout?

我创建了一个包含 5 个面板的 window 和一个 BorderLayout,但随后无法绘制图形。

我不确定如何将其实际放入 BorderLayout.CENTER,因为它似乎与我刚制作 new JPanel.[=16= 时的方式不一样]

有人可以指导我如何实现这一目标吗?

import javax.swing.*;
import java.awt.*;
      
public class GameScene2 {

    public static void main(String[] args) {
        SwingUtilities.invokeLater(new Runnable() {
            public void run() {
                mainGameScene();
            }
        });
    }
         
    private static void mainGameScene() {
        JFrame window = new JFrame("This is my first game :o");
        window.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        window.add(new mainGamePanel());
        window.pack();
        window.setVisible(true);
    }
}
      
class mainGamePanel extends JPanel {

    public Dimension getPreferredSize() {
        return new Dimension(1280, 720);
    }
         
    public void paintComponent(Graphics pencil) {
        super.paintComponent(pencil);
        pencil.drawString("Boo", 100, 100);
    }
}
Panel p = new Panel();
p.setLayout(new BorderLayout());

像这样将它添加到框架中。

这里有完整的link解释如何使用Borderlayout:

https://docs.oracle.com/javase/tutorial/uiswing/layout/border.html

这解释了如何将其添加到面板:

https://docs.oracle.com/javase/7/docs/api/java/awt/BorderLayout.html

编辑:

原来你有 window.add(新的 mainGamePanel());

改为尝试

mainGamePanel p = new mainGamePanel();
p.setLayout(new BorderLayout());
window.add(p);