GLJPanel停止重绘

时间:2011-07-14 02:20:18

标签: java netbeans jogl platform

我正在使用Jogl在Netbeans Platform模块项目中创建一个GLJPanel(这是一种非常特殊的Java应用程序类型,它在netbeans平台应用程序中创建一个模块化窗口,因此可以拖动多个窗口)。 / p>

我无法使用GLCanvas,因为它无法在Windows或Linux上运行(Netbeans和Jogl几乎是地狱中的匹配)。我不能使用NEWT,因为它在Mac上不起作用。所以我正在使用GLJPanel,即使它很慢。

无论如何,它通常最初起作用。然后,如果我在程序中调整大小或执行其他操作,则窗口似乎失去焦点并且永远不会重新获得它。窗口不会重绘。我仍然得到鼠标事件(尽管没有关键事件!)。我知道这是因为我可以点击另一个窗口,它会重绘一次GLJPanel。否则屏幕不会重绘。

我按照http://jogamp.org/deployment/jogamp-next/javadoc/jogl/javadoc/javax/media/opengl/awt/GLCanvas.html#java2dgl

尝试了将sun.java2d.opengl和sun.java2d.noddraw设置为true和false的所有组合

这是开源项目的一部分,因此我的组件的来源是

https://github.com/mtakemiya/BMIDesktop/blob/dfe63cc789d42bff99922f36b683bd88e64632df/timeline/src/jp/atr/dni/bmi/desktop/timeline/TimelineTopComponent.java

我做了什么明显的错误吗?

1 个答案:

答案 0 :(得分:0)

我不会将这些标志设置为true,因为有一些带有gui元素的bug。我编写了我的程序而没有将这些标志设置为true。如果你让它工作,我会重写以覆盖GLPanel或GLCanvas的GLEventListener 。应该不断重画。如果你提供更多细节我可以帮助你,等待你的回应。