【问题标题】:JOGL Canvas cover other SWT WidgetsJOGL Canvas 涵盖其他 SWT 小部件
【发布时间】:2013-07-04 02:58:48
【问题描述】:

我是 JOGL 和 SWT 的业余爱好者。我在尝试使用 AbsoluteLayout 在 GLCanvas 上显示一些 SWT 小部件时遇到问题。

composite = new Composite(parent, SWT.NONE);
composite.setLayout(null);
Button button = new Button(composite, SWT.NONE);
button.setText("New Button");
button.setBounds(172, 145, 94, 28);
glcanvas = GLCanvas.create(composite, SWT.NO_BACKGROUND, null, null, null);

我认为按钮应该在 GLCanvas 之上,但它总是在 GLCanvas 之后。难道我做错了什么 ?请帮帮我,非常感谢。

【问题讨论】:

    标签: opengl swt jogl


    【解决方案1】:

    你试过了吗:

    composite = new Composite(parent, SWT.NONE);
    composite.setLayout(null);
    glcanvas = GLCanvas.create(composite, SWT.NO_BACKGROUND, null, null, null);
    Button button = new Button(composite, SWT.NONE);
    button.setText("New Button");
    button.setBounds(172, 145, 94, 28);
    

    (将 glcanvas = GLCanvas... 向上移动到创建按钮之前)

    除非我遗漏了一些东西,否则您将添加按钮,然后在其顶部添加画布。

    【讨论】:

    • 我按照您的建议更改了顺序,但 GLCanvas 仍然覆盖按钮!我不知道为什么,我正在尝试挖掘 JOGL GLCanvas 的源代码。
    • Here 是关于将 AWT 组件放置在 GLCanvas 之上的讨论。你运行的是什么操作系统?
    • 我正在MacOS(10.8.4)下开发。我已经阅读了该主题,但我不想在 GLCanvas 上放置组件。我只是尝试将 GLCanvas 添加到 AbsoluteLayout 中,但它不起作用:(
    • 如果您尝试将 SWT 组件与 GLCanvas 并排放置,那应该不是问题。在这种情况下,您似乎设置了按钮的绝对位置,而不是画布的绝对位置。我会假设画布然后占据了整个空间,并且由于 OS X 上的错误,按钮没有呈现在它上面。尝试设置画布的位置和尺寸。
    • 有关 AWT/SWING + JOGL 的更多信息,请查看我在 Github 上的旧游戏工具包。您还可以查看它用于Github 的实际游戏。
    【解决方案2】:

    目前,这个问题没有解决方案。有关更多详细信息,此问题仅在 MacOS 上发生,我在 Windows 8 x64 下进行了测试,并且没有任何内容被覆盖。这是官方论坛讨论的链接 http://forum.jogamp.org/How-to-overlay-SWT-Widgets-over-GLCanvas-td4029507.html

    【讨论】:

      猜你喜欢
      • 2023-03-07
      • 1970-01-01
      • 2012-06-20
      • 1970-01-01
      • 2015-09-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-10-21
      相关资源
      最近更新 更多