Java 将一个光滑的2D游戏放入GUI中

Java 将一个光滑的2D游戏放入GUI中,java,swing,user-interface,lwjgl,slick2d,Java,Swing,User Interface,Lwjgl,Slick2d,我试图做的是使用SWING创建一个GUI,然后使用一个容器来显示实际的Slick游戏,如下所示 问题是AppGameContainer是唯一可用的容器(据我所知),但它创建了整个窗口(包括标题栏和其他内容),所以我不能真正将其嵌入GUI中,对吗?我也愿意接受其他解决方案,所以请告诉我是否有更好的方法来实现这一点 我对Slick2D不是很有经验,如果这很明显,我很抱歉,但我试着用谷歌搜索了一下,没有找到任何结果。我建议使用OpenGL帧缓冲区对象(FBO)来渲染场景。FBO的作用类似于OpenG

我试图做的是使用SWING创建一个GUI,然后使用一个容器来显示实际的Slick游戏,如下所示

问题是AppGameContainer是唯一可用的容器(据我所知),但它创建了整个窗口(包括标题栏和其他内容),所以我不能真正将其嵌入GUI中,对吗?我也愿意接受其他解决方案,所以请告诉我是否有更好的方法来实现这一点


我对Slick2D不是很有经验,如果这很明显,我很抱歉,但我试着用谷歌搜索了一下,没有找到任何结果。

我建议使用OpenGL帧缓冲区对象(FBO)来渲染场景。FBO的作用类似于OpenGL中的2D纹理对象,因此您可以从FBO读取像素数据并使用它渲染到缓冲图像,然后使用它渲染到java swing画布。
这是一个关于如何使用FBO的非常好的教程,如果您选择实施此策略

我建议使用OpenGL帧缓冲区对象(FBO)渲染场景。FBO的作用类似于OpenGL中的2D纹理对象,因此您可以从FBO读取像素数据并使用它渲染到缓冲图像,然后使用它渲染到java swing画布。
这是一个关于如何使用FBO的非常好的教程,如果您选择实施此策略

对于另一个选项的抖动,你可以看一看。因为它基于lwjgl,我怀疑它的核心使用了java.awt.Canvas,这使得它成为一个很重的组件,在Swing中并不总是很好,就像对于另一个选项的抖动,你可以看一看。因为它基于lwjgl,我怀疑它的核心使用了java.awt.Canvas,这使得它成为了一个重量很重的组件,它在Swing中的表现并不总是很好,就像一个提示一样