【问题标题】:I can't run this java file in Eclipse我无法在 Eclipse 中运行这个 java 文件
【发布时间】:2013-01-31 01:48:15
【问题描述】:

当我尝试在 Eclipse 中将它作为 Java 项目运行时,什么都没有发生,但如果我将它全部放在“public static void main(String[] args)”中,那么它可以工作,但它不是这样完成的我正在学习的视频

 package Indeed;


import static org.lwjgl.opengl.GL11.*;

import java.util.ArrayList;
import java.util.List;
import java.util.Random;

import org.lwjgl.opengl.*;
import org.lwjgl.*;
import org.lwjgl.input.Mouse;
import org.lwjgl.input.Keyboard;    


public class InputDemo {


public static void main(String[] args) {

}

List<Box> shapes = new ArrayList<Box>(16);

public InputDemo() {

    try {
        Display.setDisplayMode(new DisplayMode(640, 480));
        Display.setTitle("Hello, LWJGL!");
        Display.create();
    } 
    catch (LWJGLException e) 
    {

        e.printStackTrace();
    }

    shapes.add(new Box(15, 15));
    shapes.add(new Box(100, 150));

    //Initialization code OpenGL
    glMatrixMode(GL_PROJECTION);
    glLoadIdentity();
    glOrtho(0, 640, 480, 0, 1, -1);
    glMatrixMode(GL_MODELVIEW);

    while(!Display.isCloseRequested())
    {
        //Render
        glClear(GL_ACCUM_BUFFER_BIT);

        if(Keyboard.isKeyDown(Keyboard.KEY_ESCAPE))
        {
            Display.destroy();
            System.exit(0);
        }

        for(Box box : shapes)
        {
            box.draw();
        }




        Display.update();
        Display.sync(60);
    }

    Display.destroy();
}

private static class Box
{
    public int x, y;
    private float red, blue, green;
    public boolean selected = false;

    Box (int x, int y)
    {
        this.x = x;
        this.y = y;

        Random rand = new Random();
        red = rand.nextFloat(); 
        blue = rand.nextFloat();
        green = rand.nextFloat();
    }

    void update(int dx, int dy)
    {
        x += dx;
        y += dy;
    }

    boolean inBounds(int mouseX, int mouseY)
    {
        if(mouseX > x && mouseX < x + 50 && mouseY > y && mouseY < y + 50)
        {
            return true;
        }
        else
        {
            return false;
        }

    }

    void RandomColor()
    {
        Random rand = new Random();
        red = rand.nextFloat(); 
        blue = rand.nextFloat();
        green = rand.nextFloat();
    }

    void draw()
    {
        glColor3f(red, green, blue);

        glBegin(GL_QUADS);
        glVertex2f(x, y);
        glVertex2f(x + 50, y);
        glVertex2f(x+ 50, y+ 50);
        glVertex2f(x, y + 50);
        glEnd();
    }
}


}

【问题讨论】:

  • 在运行程序时调用main方法时,体内没有提供运行程序的代码。
  • 能否提供视频链接?
  • InputDemo input = new InputDemo() 放入您的主要方法中。它将实例化一个InputDemo 对象并调用构造函数下的代码。

标签: java


【解决方案1】:

您不需要将其全部放入main 函数中,但请注意,只有放入其中的代码才会运行。如果您的视频另有声明,则它在欺骗您

您的所有代码都从构造函数中调用。理想情况下,您会将其移至主要功能。如果您选择保持原样,则需要创建该类的一个实例才能执行它。因此,您可以将 InputDemo demo = new InputDemo(); 添加到您的主要功能中,这可能就足够了..

【讨论】:

  • 对于初学者来说,一个java程序在main方法中开始和结束。 +1
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-05-14
  • 2021-01-20
  • 1970-01-01
  • 2012-07-30
  • 1970-01-01
相关资源
最近更新 更多