2012-03-06 38 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