2012-03-06 104 views
5

我有一个画布,一些文本字段和一个上下文菜单。JPopupMenu显示在画布下

当我启动应用程序并右键单击画布时,弹出菜单显示。但是,当我在文本字段内写入的内容比右键单击画布时,弹出窗口将在画布后面显示。

任何想法如何解决这个问题?

+2

提出了一些代码,理想情况下是一个SSCE。通常,只要编写一个SSCE,你就会发现你的问题。 – 2012-03-06 17:19:18

+0

什么是SSCE? – 2012-03-06 18:11:15

+0

http://sscce.org/,对不起,我错过了一个C – 2012-03-06 18:16:10

回答

5
JPopupMenu.setDefaultLightWeightPopupEnabled(false); 

解决了这个问题。

3

1)CanvasAWT Component,并且是Heavyweight type of Components

2)JPopupMenuSwing JComponent并且Lightweight type of JComponents

3)能够解决通过使用Swing JPanel而非AWT Canvas

4)您的问题是约Mixing Heavyweight and Lightweight Componentsrest is here

+0

我需要一个重量级的组件用opengl来绘制它。 – 2012-03-06 18:10:51

+0

同意OpenGL的正确方法,你的选择比使用JPopup使用Window或un_decorated Dialog更简单,在那里你可以放置Swing JButtons,铺设使用GridLayout – mKorbel 2012-03-06 18:26:55

+0

Uggh ..在我喝完咖啡之前添加回复是毫无意义的。 +1 – 2012-03-07 05:19:24