2012-03-06 16 views
5

Ho una tela, alcuni campi di testo e un menu di scelta rapida.JPopupMenu display in Canvas

Quando avvio l'applicazione e clicco con il tasto destro sulla tela, viene visualizzato un menu a comparsa. Ma quando scrivo qualcosa all'interno del campo di testo che clicco con il tasto destro sulla tela, il popup apparirà dietro la tela.

Qualche idea su come risolvere il problema?

+2

inserire un codice, idealmente un SSCE. Di solito, solo scrivendo un SSCE troverai il tuo problema. –

+0

Cos'è un SSCE? –

+0

http://sscce.org/, mi spiace di aver perso un C –

risposta

5
JPopupMenu.setDefaultLightWeightPopupEnabled(false); 

risolto il problema.

3

1) Canvas è AWT Component, ed è Heavyweight type of Components

2) JPopupMenu è Swing JComponent ed è Lightweight type of JComponents

3) possibile risolvere che, utilizzando Swing JPanel piuttosto che AWT Canvas

4) il problema è circa Mixing Heavyweight and Lightweight Components o rest is here

+0

Ho bisogno di un componente Heavyweight per disegnarlo con opengl. –

+0

concordato modo corretto per OpenGL, la tua scelta è più semplice di usare JPopup usa Window o un_decorated Dialog, ci puoi mettere Swing JButtons, per la posa usa GridLayout – mKorbel

+0

Uggh .. aggiungere risposte prima che abbia avuto il mio caffè è inutile. +1 –