为了账号安全,请及时绑定邮箱和手机立即绑定

JFrame Container.add 方法类参考

JFrame Container.add 方法类参考

慕工程0101907 2022-07-14 09:54:03
我偶然发现了一个简单的 PacMan 游戏,它是由 youtube 上一个名为“Learn Coding from Scratch”的频道制作的。代码中有3个类文件,分别是Player、Level1和Executable。这是Level1的代码;public class Level1 extends JPanel implements KeyListener{    private JFrame window = new JFrame("PacMan");    private ImageIcon background = new ImageIcon("images//background.jpeg");    private Player player = new Player(5, 10, 10, "images//pacman_right.jpg", true, 0);     private int speed = 10;    public Level1() {        this.setFocusable(true);        this.addKeyListener(this);        **window.add(this);**        window.setSize(940, 627);        window.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);        window.setVisible(true);}    public void paint(Graphics g) {        g.drawImage(background.getImage(), 0, 0, null);        player.drawPlayer(g);    }我不明白的是“window.add(this)”。我从未见过必须引用 JFrame 中的当前类的 JPanel 和 JFrame 示例。您只是用“.add”而不是当前类添加按钮、标签等?此外,我检查了 Container.add 方法的 Oracle 文档,但基本上你可以在里面放任何东西,这对我没有多大帮助。你们能看看这个吗?提前致谢。Ps 我知道我发布的大部分代码都是多余的,但无论如何有人会要求提供整个代码:)
查看完整描述

1 回答

?
天涯尽头无女友

TA贡献1831条经验 获得超9个赞

你的课Level1 extends JPanel。这意味着它是一个JPanel. 命名的对象window是一个 JFrame。通过写作


window.add(这个);


在Level1的构造函数中,您将this JPanel添加到框架中。


您以前从未见过它,因为最常见的做法是extends创建一个 JFrame,然后创建面板并添加它们,如下所示: this.add(myPanel); //this refers to a frame, mypanel refers to a JPanel


为了更清楚,看一下最常见的做法并与您的比较:


public class PacmanFrame extends JFrame {

    public PacmanFrame() {

        //this refers to our class, extending JFrame

        JPanel myPanel = new JPanel();

        this.add(myPanel);

    }

}


查看完整回答
反对 回复 2022-07-14
  • 1 回答
  • 0 关注
  • 159 浏览

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号