JPanel 中的 GLCanvas 不起作用
GLCanvas inside JPanel doesn't work
我正在尝试将带有 OpenGL 内容的 GLCanvas 添加到 JPanel。 JPanel 位于 JTabbedPane 内。但是当 GLCanvas 在 JPanel 内部时,面板只是灰色的。当我将 GLCanvas 直接添加到 TabbedPane 时,一切正常。
这里是工作代码:
JTabbedPane mainPane = frame.getMainPane();
GLCanvas canvas = cogl.getCanvas();
mainPane.add("OGL",canvas);
这是无效代码:
JTabbedPane mainPane = frame.getMainPane();
GLCanvas canvas = cogl.getCanvas();
JPanel panel = new JPanel();
panel.add(canvas);
mainPane.add("OGL",panel);
那么如何让 GLCanvas 在 JPanel 中工作?
LayoutManager
似乎有问题,JPanel
使用 FlowLayout
作为默认值将其更改为 BorderLayout
,如下所示:
JPanel panel = new JPanel(new BorderLayout());
我正在尝试将带有 OpenGL 内容的 GLCanvas 添加到 JPanel。 JPanel 位于 JTabbedPane 内。但是当 GLCanvas 在 JPanel 内部时,面板只是灰色的。当我将 GLCanvas 直接添加到 TabbedPane 时,一切正常。
这里是工作代码:
JTabbedPane mainPane = frame.getMainPane();
GLCanvas canvas = cogl.getCanvas();
mainPane.add("OGL",canvas);
这是无效代码:
JTabbedPane mainPane = frame.getMainPane();
GLCanvas canvas = cogl.getCanvas();
JPanel panel = new JPanel();
panel.add(canvas);
mainPane.add("OGL",panel);
那么如何让 GLCanvas 在 JPanel 中工作?
LayoutManager
似乎有问题,JPanel
使用 FlowLayout
作为默认值将其更改为 BorderLayout
,如下所示:
JPanel panel = new JPanel(new BorderLayout());