Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/305.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
为什么不是';在Game.java类中无法识别我的windows实例吗?_Java_Variables_Instance - Fatal编程技术网

为什么不是';在Game.java类中无法识别我的windows实例吗?

为什么不是';在Game.java类中无法识别我的windows实例吗?,java,variables,instance,Java,Variables,Instance,我正在使用youtube教程: 以下是编译器错误: Game.java:18:错误:找不到符号 新窗口(宽度、高度,“让我们构建一个游戏吧!”,此窗口); ^ 符号:类窗口 地点:班级游戏 以下是我的Game.java代码: package com.tutorial.main; import java.awt.Graphics; import java.awt.Color; import java.awt.Canvas; import java.awt.image.BufferStrategy

我正在使用youtube教程:

以下是编译器错误:

Game.java:18:错误:找不到符号 新窗口(宽度、高度,“让我们构建一个游戏吧!”,此窗口); ^ 符号:类窗口 地点:班级游戏

以下是我的Game.java代码:

package com.tutorial.main;

import java.awt.Graphics;
import java.awt.Color;
import java.awt.Canvas;
import java.awt.image.BufferStrategy;

public class Game extends Canvas implements Runnable {

        private static final long serialVersionUID = 8073316534757788976L;

        public static final int WIDTH = 640, HEIGHT = WIDTH/12*9;

        private Thread thread;
        private boolean running = false;

        public Game(){
                new Window(WIDTH, HEIGHT, "Let's Build A Game!", this);
        }

        public synchronized void start() {
                thread = new Thread(this);
                thread.start();
                running = true;
        }

        public synchronized void stop(){
                try{
                        thread.join();
                        running = false;
                }catch(Exception e) {
                        e.printStackTrace();
                }
        }

        public void run(){
                long lastTime = System.nanoTime();
                double amountOfTicks = 60.0;
                double ns = 100000000 / amountOfTicks;
                double delta = 0;
                long timer = System.currentTimeMillis();
                int frames = 0;
                while(running){
                        long now = System.nanoTime();
                        delta += (now - lastTime) /ns;
                        lastTime = now;
                        while(delta >= 1){
                                tick();
                                delta--;
                        }
                        if(running){
                                render();
                        }
                        frames++;

                        if(System.currentTimeMillis() - timer > 1000){
                                timer+=1000;
                                System.out.println("FPS: " + frames);
                                frames = 0;
                        }
                }
                stop();
        }

        public static void main(String args[]){
                new Game();
        }

        private void tick(){

        }
        private void render(){
                BufferStrategy bs = this.getBufferStrategy();
                if(bs==null){
                        this.createBufferStrategy(3);
                        return;
                }

                Graphics g = bs.getDrawGraphics();

                g.setColor(Color.black);
                g.fillRect(0,0,WIDTH,HEIGHT);

                g.dispose();
                bs.show();

        }
}
这是我的Window.java:

package com.tutorial.main;

import java.awt.Canvas;
import java.awt.Dimension;
import javax.swing.JFrame;


public class Window extends Canvas{

    private static final long serialVersionUID = -3359827712233484029L;

    public Window(int width, int height, String title, Game game){
        JFrame frame = new JFrame(title);

        frame.setPreferredSize(new Dimension(width, height));
        frame.setMaximumSize(new Dimension(width, height));
        frame.setMinimumSize(new Dimension(width, height));

        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        frame.setResizable(false);
        frame.setLocationRelativeTo(null);
        frame.add(game);
        frame.setVisible(true);
        game.start();


    }
}

为什么实例无法识别?

有一个名为Window的java核心类,因此应该将您的类重命名为GameWindow或其他名称。编译器可能会感到困惑,因为名为Window的核心类具有不同的构造函数,所以只需重命名它。

我要做的第一件事是将该类从Window重命名为其他名称,因为该名称与核心Java类冲突。无法重现该问题。提供的代码在我的机器上可以很好地编译。接下来,重新构建类/项目以确保IDE不是HICCOUNGING我来自c#,我有一个问题:new Window()是构造函数,对吗?那么new Window()真正做什么,因为它实际上并没有生成新对象?或者可能有错误,这就是代码不起作用的原因?旁注:找一个不同的教程,一个不是基于20年过时技术的教程