我不能引用一个类 - 问题在某个地方

时间:2017-04-29 01:54:34

标签: java javax

因为我对Java很新,所以我只知道变量,导入东西和其他东西;但我没有得到的是为什么begin()函数没有运行,任何可以解释最新情况并可能以更好的方式重写它的帮助将不胜感激!

谢谢, 杰里

package nEW;

// Not Working - trying to format start by making a new "begin" object when run.

import java.awt.Color;
import java.awt.Component;
import java.awt.Font;
import java.awt.Graphics;
import java.awt.RenderingHints;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.KeyEvent;
import java.awt.event.KeyListener;

import javax.swing.JFrame;
import javax.swing.Renderer;
import javax.swing.Timer;
import javax.print.*;

public class Chessstart
{

    public static void main(String[] args) {

        open.start();
    }
        static class open
        {



            // All packages imported , ready for use... Add more if need be : +

            public class begin implements ActionListener, KeyListener
            {
                public boolean board_show =true;
                public int AOB1 = 16;
                public int AOB2 = 16;

                public static final int WOB = 640;
                public static final int HOB = 640;

                public int GStat = 0;
                // Defines when game is playing, toggle-able twice 0, 1, 2
                // 0 = Menu, 1 = Paused, 2 = Game
                // Might Become Redundant
                // TODO Make this feature redundant!


                public boolean click, space;
                public int turn;
                public Component renderer;


                public void ScreenUp()
                {
                    Timer timer = new Timer(20, this);
                    JFrame jframe = new JFrame("CHESS");

                    jframe.setSize(WOB, HOB);
                    jframe.setVisible(true);

                    jframe.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
                    jframe.add(renderer);
                    jframe.addKeyListener(this);



                    timer.start();


                }

                public void render(Graphics g)
                {
                    g.setColor(Color.black);
                    g.fillRect(0, 0, WOB, HOB);
                    if (GStat == 0 || GStat == 1 || GStat == 2)
                    {
                        if (GStat == 0)
                        {
                            System.out.print("GStat return 0 - Render running");
                        }
                        if (GStat == 1)
                        {
                            System.out.print("GStat return 1 - render running");
                        }
                        if (GStat == 2)
                        {
                            System.out.print("GStat return 2 - render running");
                        }
                    }
                }






                @Override
                public void actionPerformed(ActionEvent arg0) {
                    // TODO Auto-generated method stub

                }
                @Override
                public void keyPressed(KeyEvent arg0){
                    // TODO Auto-generated method stub

                }
                @Override
                public void keyReleased(KeyEvent arg0) {
                    // TODO Auto-generated method stub

                }
                @Override
                public void keyTyped(KeyEvent arg0) {
                    // TODO Auto-generated method stub

                }


        }

            public static void start() {
                open.begin();

            }

        }
    }

1 个答案:

答案 0 :(得分:2)

对于Java中的接口,我也是新手,但是......

就像Ousmane Mahy Diaw在评论中提到的那样,开始是一个阶级,而不是一个功能。这是基本的Java知识,所以首先我建议用命令行练习下象棋。接口应该是一个单独的工作。

该代码存在很多问题。我建议使用Netbeans IDE。当涉及到基本错误时,它可以帮助你。

我建议在使用JFrames构建接口时这样做:

import java.awt.Color;
import java.awt.Component;
import java.awt.Font;
import java.awt.Graphics;
import java.awt.RenderingHints;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.KeyEvent;
import java.awt.event.KeyListener;

import javax.swing.JFrame;
import javax.swing.Renderer;
import javax.swing.Timer;
import javax.print.*;

public class Chessstart extends JFrame implements ActionListener, KeyListener
{
    public boolean board_show =true;
    public int AOB1 = 16;
    public int AOB2 = 16;

    public static final int WOB = 640;
    public static final int HOB = 640;

    public int GStat = 0;
    // Defines when game is playing, toggle-able twice 0, 1, 2
    // 0 = Menu, 1 = Paused, 2 = Game
    // Might Become Redundant
    // TODO Make this feature redundant!


    public boolean click, space;
    public int turn;
    public Component renderer;

    public static void main(String[] args) {
        Chessstart ch = new Chessstart();
        //ch.render(ch.getGraphics());
        ch.screenUp();
    }

    public void screenUp()
    {
        Timer timer = new Timer(20, this);
        JFrame jframe = new JFrame("CHESS");

        jframe.setSize(WOB, HOB);
        jframe.setVisible(true);

        jframe.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        jframe.add(renderer);
        jframe.addKeyListener(this);

        timer.start();
    }

    public void render(Graphics g)
    {
        g.setColor(Color.black);
        g.fillRect(0, 0, WOB, HOB);
        if (GStat == 0 || GStat == 1 || GStat == 2)
        {
            if (GStat == 0)
            {
                System.out.print("GStat return 0 - Render running");
            }
            if (GStat == 1)
            {
                System.out.print("GStat return 1 - render running");
            }
            if (GStat == 2)
            {
                System.out.print("GStat return 2 - render running");
            }
        }
    }

    @Override
    public void actionPerformed(ActionEvent arg0) {
        // TODO Auto-generated method stub

    }
    @Override
    public void keyPressed(KeyEvent arg0){
        // TODO Auto-generated method stub

    }
    @Override
    public void keyReleased(KeyEvent arg0) {
        // TODO Auto-generated method stub

    }
    @Override
    public void keyTyped(KeyEvent arg0) {
        // TODO Auto-generated method stub

    }


}

这至少打开了你的窗口,但是请注意你需要在使用之前初始化一个对象。这意味着没有初始化图形,渲染将无法成功。

另外,为什么甚至使用渲染器?你不需要,windows出现,没有错误,如:

import java.awt.Color;
import java.awt.Component;
import java.awt.Font;
import java.awt.Graphics;
import java.awt.RenderingHints;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.KeyEvent;
import java.awt.event.KeyListener;

import javax.swing.JFrame;
import javax.swing.Renderer;
import javax.swing.Timer;
import javax.print.*;

public class Chessstart extends JFrame implements ActionListener, KeyListener
{
    public boolean board_show =true;
    public int AOB1 = 16;
    public int AOB2 = 16;

    public static final int WOB = 640;
    public static final int HOB = 640;

    public int GStat = 0;
    // Defines when game is playing, toggle-able twice 0, 1, 2
    // 0 = Menu, 1 = Paused, 2 = Game
    // Might Become Redundant
    // TODO Make this feature redundant!


    public boolean click, space;
    public int turn;
    public Component renderer;

    public static void main(String[] args) {
        Chessstart ch = new Chessstart();
        //ch.render(ch.getGraphics());
        ch.screenUp();
    }

    public void screenUp()
    {
        Timer timer = new Timer(20, this);
        JFrame jframe = new JFrame("CHESS");

        jframe.setSize(WOB, HOB);
        jframe.setVisible(true);

        jframe.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

        jframe.addKeyListener(this);

        timer.start();
    }

    public void render(Graphics g)
    {
        g.setColor(Color.black);
        g.fillRect(0, 0, WOB, HOB);
        if (GStat == 0 || GStat == 1 || GStat == 2)
        {
            if (GStat == 0)
            {
                System.out.print("GStat return 0 - Render running");
            }
            if (GStat == 1)
            {
                System.out.print("GStat return 1 - render running");
            }
            if (GStat == 2)
            {
                System.out.print("GStat return 2 - render running");
            }
        }
    }

    @Override
    public void actionPerformed(ActionEvent arg0) {
        // TODO Auto-generated method stub

    }
    @Override
    public void keyPressed(KeyEvent arg0){
        // TODO Auto-generated method stub

    }
    @Override
    public void keyReleased(KeyEvent arg0) {
        // TODO Auto-generated method stub

    }
    @Override
    public void keyTyped(KeyEvent arg0) {
        // TODO Auto-generated method stub

    }


}