我正在使用GLCanvas繪製應用程序。我想在它的頂部添加一個「浮動菜單」(通過向玻璃窗格添加一個菜單,我將在Swing中執行此操作)。由於GLCanvas不擴展Container,建議的方法是什麼?將組件添加到GLCanvas
0
A
回答
0
GLCanvas inherits from java.awt.Component,所以當你添加一個GLCanvas到你的JFrame時,你可以在你的包含JFrame上使用glasspane。或者,根據您想要的視覺效果,在場景完成GLCanvas渲染後,可以將GL調用添加到glOrtho,然後使用GL本身中的基元在場景頂部繪製菜單, (儘管如此,你會被卡在綁定自己的回調行爲等等......我不知道你是否想進入這個問題)。
0
你說的是彈出式菜單嗎?你可以添加一個MouseListener到你的GLCanvas(因爲它從Component中擴展),在MouseListener中,檢查mouseEvent.isPopupTrigger(),如果是的話,創建你的JPopupMenu - 因爲你想通過一個重量級組件來顯示它,調用setLightweightPopupEnabled假)在顯示JPopupMenu之前 - 然後在您的JPopupMenu上調用show(glCanvas,x,y)。
+0
你好,我不是在說這裏的彈出式菜單。菜單可能是一個不好的描述。它更像是一個浮動面板。它現在可以在一個固定的位置。我猜我需要使用佈局管理器,它允許我重疊組件,並使Panel(awt)與GLCanvas重疊。 – 2009-09-15 12:38:07
相關問題
- 1. 可以將.jme模型添加到GLCanvas(JOGL)嗎?
- 2. 將組件添加到JPanel
- 3. 將組件添加到JPanel
- 4. 將組件添加到BorderLayout
- 5. 將組件添加到JDialog
- 6. 將Swing組件添加到PDF文件
- 7. 將幾個組件添加到Jpanel中
- 8. 將UI組件添加到黑莓ListField
- 9. 將Flash UI組件添加到Builder中
- 10. 將EJB組件添加到IntelliJ Idea
- 11. 將衛星組件添加到XAP中
- 12. 如何將組件添加到JDialog的
- 13. Java將組件添加到JOptionPane
- 14. 如何將cq:listener添加到組件
- 15. 將事件添加到數組元素
- 16. 將組件添加到jPanel java
- 17. 將JScrollPane添加到JTable組件
- 18. 將Matlab組件添加到Java JWindow
- 19. 將組件動態添加到JDialog
- 20. 將文件對象添加到數組
- 21. 將Swing組件添加到ScrollPane(JavaFX)
- 22. 將編輯器添加到組件
- 23. 將多個組件添加到Jframe.getcontentpane()
- 24. 將子組件添加到父面板?
- 25. 將行名添加到cde表組件
- 26. 將組件添加到JPanel頂端
- 27. 將組件動態添加到模型
- 28. 無法將組件添加到JApplet中
- 29. 將組件添加到JTable中
- 30. 將網絡組件添加到DOM
我不認爲我可以使用玻璃窗格,因爲畫布實際上會被繪製在玻璃窗格的頂部,因爲它是一個重量級的組件。你是對的,我真的不想開始實施我自己的回調機制,並直接進行GL調用。 – 2009-09-14 23:22:52
因此,如果您將揮杆組件設置爲重量級,它仍然不起作用?嗯...現在試一試,我發現你可以在glcanvas上渲染下拉菜單,而不會出現問題: JPopupMenu.setDefaultLightWeightPopupEnabled(false); ToolTipManager.sharedInstance()。setLightWeightPopupEnabled(false); (雖然這需要在你對JFrame做任何事情之前完成) – Decker 2009-09-16 16:15:25