【发布时间】:2014-09-14 05:24:00
【问题描述】:
在我的应用程序中,我有一个用作 Swing 组件的类,用于使用 LWJGL 呈现 3D 窗口。当我去运行该应用程序时,我从Display.create() 得到错误Parent.isDisplayable() must be true。我试过看,大多数人说在调用 setVisible() 之前调用 Display.create() 会发生这种情况。但是,这里不是这种情况,我似乎无法弄清楚为什么会出现错误。
我的控件如下所示:
public class WorldCanvas extends JPanel {
private final Canvas canvas = new Canvas();
public WorldCanvas() {
...
add(canvas, BorderLayout.CENTER);
try {
Display.setParent(canvas);
setVisible(true);
canvas.setVisible(true);
Display.create();
} catch (LWJGLException e) {
e.printStackTrace();
return;
}
}
}
它被直接添加到 JFrame 中,并且 setVisible(true) 在添加之前也会在 JFrame 上调用(但是,在添加之前会生成此错误,因为它在构造函数中)。为什么会出现此错误?
【问题讨论】:
标签: java swing opengl canvas lwjgl