Article View: es.comp.lenguajes.java
Article #29340Re: PopupMenu
From: Sergio Martinez Gonzalez
Date: Tue, 23 Dec 1997 00:00
Date: Tue, 23 Dec 1997 00:00
80 lines
2975 bytes
2975 bytes
Ricardo Garcia wrote:
>
> Hola,
> Quiero programar un popup menu y no lo consigo. Bajo Windows 95 se activan
> con el bot�n derecho del rat�n pero la funci�n isPopupTrigger() no es nunca
> verdadera haga lo que haga.
> Puede ayudarme alguien?
> Ricardo
>
> Esto es mas o menos lo que hago:
>
> public class myClass extends Frame implements MouseListener {
>
> List list = new List(4, false);
> this.add(list);
> list.addMouseListener(this);
>
> PopupMenu popupEdition = new PopupMenu("Edition");
> MenuItem delete = new MenuItem("Delete");
> popupEdition.add(delete);
>
> list.add(popupEdition);
>
> ...
>
> public void mouseClicked(MouseEvent e) {
> if (e.isPopupTrigger()) {
> popupEdition.show(list, e.getX(), e.getY());
> }
> }
>
> }
>
> La funci�n mouseClicked es llamada que haga un click con el bot�n izquierdo
> o derecho, pero la condici�n no est� nunca satisfecha...
Prueba con esto:
public void mouseClicked(MouseEvent e) {
if ((e.getModifiers() & InputEvent.BUTTON3_MASK) != 0) {
// pulsado bot�n derecho del rat�n
// hacer cositas :)
}
}
Podr�amos considerarlo un 'walkaround', ya que lo inmediato
(isPopupTrigger()) no funciona. Lo que haces es comprobar qu� bot�n se
ha pulsado.
La clase java.awt.event.InputEvent tiene m�scaras para identificar los
botones del rat�n:
BUTTON1_MASK, bot�n izquierdo
BUTTON2_MASK, bot�n central (supongo, porque mi rat�n solo tiene dos
botones)
BUTTON3_MASK, corresponde al bot�n derecho
BALL_MASK, si se oprime la bolita que hay debajo del rat�n (je, je, es
broma).
En f�n, esto tendr�a que funcionarte (a m� en W95 me funciona),
simplemente un apunte final:
Lo que intentas hacer t� (abrir un lindo popup men� al pulsar el bot�n
derecho del rat�n) lo implement� en un componente que desarroll� para
una aplicaci�n y me funcionaba perfectamente con el JDK 1.1.3, pero
SORPRESA SORPRESA, con el JDK 1.1.4 el mismo c�digo cuando hace el show
del popupmen�, genera una excepci�n en la VM, que me temblaban hasta las
pesta�as.
Si solventas este problemilla, y me avisas, me haras un favor
Suerte y al tajo....
--
""""" | Sergio Martinez Gonzalez
O - | METHOD SOFTWARE
{ . } | e-mail: zengui@ibernet.com
--- o | www: no tengo todavia...
Technical Details
Message-ID:
<349F9074.450FC8F5@ibernet.com>Path:
arc1-ca.pugleaf.net!unknown!not-for-mailReferences:
<01bd0680$48bf0260$ee026ac2@garcia-ricardo>Show Full Headers
Complete Article Headers
X-Google-Language: SPANISH,ASCII X-Google-Thread: 1116f3,aa4a3b558412f320 X-Google-Attributes: gid1116f3,public From: Sergio Martinez Gonzalez <zengui@ibernet.com> Subject: Re: PopupMenu Date: 1997/12/23 Message-ID: <349F9074.450FC8F5@ibernet.com> X-Deja-AN: 309590537 Content-Transfer-Encoding: 8bit References: <01bd0680$48bf0260$ee026ac2@garcia-ricardo> X-Priority: 3 (Normal) Content-Type: text/plain; charset=iso-8859-1 Organization: Method Software Mime-Version: 1.0 Newsgroups: es.comp.lenguajes.java