Я работаю с приложением, которое использует GLCanvas. Я хотел бы добавить «плавающее меню» поверх него (что-то я сделал бы в Swing, добавив меню в стеклянную панель). Поскольку GLCanvas не расширяет Container, каким будет предложенный способ сделать это?Добавление компонентов в GLCanvas
ответ
GLCanvas inherits from java.awt.Component, поэтому, когда вы добавляете GLCanvas в свой JFrame, вы можете использовать стеклянную панель на вашем, содержащем JFrame.
Или, в зависимости от визуального эффекта, который вы хотите, после того, как ваша сцена сделана рендерингом на GLCanvas, добавьте вызов GL в glOrtho, а затем нарисуйте свое меню поверх сцены с помощью примитивов в самом GL, (хотя тогда вы бы застряли, сфальсифицировав свое поведение обратного вызова и т. д.). Я не уверен в вопросе, хотите ли вы в этом разобраться).
Вы говорите о всплывающем меню? Вы можете добавить MouseListener в свой GLCanvas (так как он простирается от Component), в MouseListener, проверьте mouseEvent.isPopupTrigger(), и если да, создайте свой JPopupMenu - поскольку вы хотите показать его над тяжеловесным компонентом, вызовите setLightweightPopupEnabled (false) перед показом JPopupMenu - затем вызовите show (glCanvas, x, y) на вашем JPopupMenu.
Привет, Нейт, я не говорю о всплывающем меню здесь. Меню могло быть плохим описанием. Это больше плавающая панель. На данный момент он может находиться в фиксированном месте. Я предполагаю, что мне нужно будет использовать диспетчер компоновки, который позволяет мне перекрывать компоненты и иметь панель (awt), перекрывающую GLCanvas. –
- 1. Межплатформенные шрифты в WxWidgets GLCanvas
- 2. Размытый текст на GLCanvas
- 3. Добавление компонентов из ManagedBean
- 4. Добавление компонентов в JScrollPane динамически
- 5. Динамическое добавление компонентов в JPanel
- 6. Добавление компонентов динамически в Эмбер
- 7. Динамическое добавление компонентов в ngFor
- 8. Динамическое добавление компонентов в java
- 9. Java - добавление компонентов в JFrame
- 10. Динамическое добавление компонентов в RecyclerView
- 11. Реакция, добавление компонентов в компонент
- 12. JTabbedPane добавление нулевых компонентов
- 13. Добавление компонентов динамически макета
- 14. Динамическое добавление реактивных компонентов
- 15. Добавление компонентов по коду
- 16. Добавление компонентов по изображению
- 17. CloudSim: добавление компонентов
- 18. добавление компонентов регистра SSE
- 19. Добавление шаблона среагировать компонентов
- 20. GLCanvas внутри JPanel не работает
- 21. Добавление компонентов динамически в JPanel изменение компонентов размера
- 22. переплета сочетания клавиш для GLCanvas в WxPython
- 23. Добавление компонентов Полимерная атрибуты динамически
- 24. Добавление компонентов в CoverFlow in Flex
- 25. Добавление компонентов акустики в vue webpack
- 26. Добавление нескольких компонентов в LinearLayout Programatically
- 27. extjs4 - Добавление пользовательских компонентов в контейнер
- 28. Добавление дочерних компонентов в панель родителя?
- 29. Добавление динамических выпадающих компонентов в JSF
- 30. Добавление компонентов пользовательского интерфейса в Blackberry ListField
Я не думаю, что смогу использовать стекло, поскольку холст будет нарисован поверх стекла, потому что это тяжеловесный компонент. И вы правы, я действительно не хочу начинать внедрять свои собственные механизмы обратного вызова и делать прямые вызовы GL. –
Итак, если вы установите весовой компонент, который будет тяжелым, он все равно не работает? Хм ... попробовав это сейчас, я обнаружил, что вы можете без проблем создавать откидывающие меню без надписей: JPopupMenu.setDefaultLightWeightPopupEnabled (false); ToolTipManager.sharedInstance(). SetLightWeightPopupEnabled (false); (Хотя это нужно сделать, прежде чем что-либо делать с JFrame) – Decker