将组件添加到GLCanvas

时间:2009-09-14 22:38:20

标签: java

我正在使用一个使用GLCanvas的应用程序。我想在它上面添加一个“浮动菜单”(我将在Swing中通过向玻璃窗格添加菜单来做)。由于GLCanvas不扩展Container,建议的方法是什么?

2 个答案:

答案 0 :(得分:0)

GLCanvas inherits from java.awt.Component,因此当您将GLCanvas添加到JFrame时,可以使用包含JFrame的glasspane。

或者,根据您想要的视觉效果,您可以在GLCanvas上完成场景渲染后,向glOrtho添加GL调用,然后使用GL本身的基元在场景顶部绘制菜单(虽然那时你会被困在你自己的回调行为等等......我不确定你是否想进入那个问题。

答案 1 :(得分:0)

你在谈论弹出菜单吗?你可以将一个MouseListener添加到你的GLCanvas(因为它从Component扩展),在MouseListener中,检查mouseEvent.isPopupTrigger(),如果是这样,创建你的JPopupMenu - 因为你想在重量级组件上显示它,调用setLightweightPopupEnabled(在显示JPopupMenu之前 - 然后在你的JPopupMenu上调用show(glCanvas,x,y)。