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());