java - 在项目之间重构代码会导致 RuntimeException : Uncompilable Code

标签 java user-interface exception controls lwjgl

当我将 Gui 类从另一个项目复制到新项目时,我认为这很容易。不幸的是,事实并非如此。我制作了一个名为 Entwine 的游戏,其包名为 net.jibini.entwine,新项目的包名为 net.jibini.pilgrim。当我尝试运行重构的代码(从 Entwine 获取并放入 Pilgrim)时,出现以下错误: java.lang.RuntimeException:无法编译的源代码 - 包 net.jibini.entwine 不存在。我找不到任何返回原始类的链接,所以我不知道它来自哪里。

这是我的 Gui 基类:

package net.jibini.pilgrim.gui;

/**
 *
 * @author zgoethel12
 */
public abstract class Gui {

    public abstract void render();

}

这是 GuiPause 类:

package net.jibini.pilgrim.gui;

import net.jibini.pilgrim.Main;
import org.lwjgl.opengl.Display;

/**
 *
 * @author zgoethel12
 */

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

public class GuiPause extends Gui {

    GuiElementButton back, quit;

    public GuiPause() {
        controls();
    }

    @Override
    public void render() {

        glPushMatrix();
        glTranslatef(0, 0, 10);

        glBegin(GL_QUADS);
        glVertex2f(10, Display.getHeight() - 10);
        glVertex2f(440, Display.getHeight() - 10);
        glVertex2f(440, 10);
        glVertex2f(10, 10);
        glEnd();

        if (Display.wasResized()) {
            controls();
        }

        glTranslatef(0, 0, 1);

        back.render();
        quit.render();

        glPopMatrix();

    }

    public void controls() {

        back = new GuiElementButton(20, 20, 400, "Back");
        quit = new GuiElementButton(20, Display.getHeight() - (back.height + 20), 400, "Quit");

        back.onClick = new OnClickListener() {
            @Override
            public void onClick() {
                Main.instance.gui = null;
            }
        };
        quit.onClick = new OnClickListener() {
            @Override
            public void onClick() {
                Main.instance.exitGame();
                Main.instance.gui = new GuiMainMenu();
            }
        };

    }

}

最后,这就是我在游戏中设置 Gui 的方式:

if (pressedI.contains(Keyboard.KEY_ESCAPE)) {
    if (gui == null) {
        try {
            gui = new GuiMainMenu();
        } catch (ExceptionInInitializerError err) {
            System.out.println(err.getCause());
        }
    } else {
        gui = null;
    }
}

由于我尝试展示的每个 Gui 都会发生这种情况,我认为这可能是 Gui 基类或构造函数中对 controls(); 的调用存在问题。我想知道问题是什么以及如何解决它,并希望得到任何帮助!

问候, 约翰·史密斯

最佳答案

我的问题的解决方案是转到“项目属性>编译”并禁用“保存时编译”

关于java - 在项目之间重构代码会导致 RuntimeException : Uncompilable Code,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31466647/

相关文章:

java - 如果 Android 终止了我的应用程序并且我从设置中强制关闭,我会收到 GCM 消息吗?

java - `Rectangle2D.Double` 如何知道它应该在对 `JOptionPane` 的调用中显示在 `paintIcon()` 内?

python - 在 PyGame 中切换显示的表面允许用户滚动到表面的边界之外

C++:如何将来自任何类的函数作为参数传递

javascript - 在 Safari 中评估表达式 const 变量范围

java - 捕获错误请求异常 (400)

java - 分数不会发布到 Facebook

python - Python 中的 Tkinter - 从事件窗口中删除小部件

java - SONAR 问题 "main"不应该是 "throw"任何 JAVA 7

Java 项目可能因循环错误而崩溃