# MousePressed



## Christian (1. Jan 2004)

HI!

Wie kann ich unterscheiden ob die rechte oder linke Mousetaste gedrückt wurde?
Mein Programm soll dann ungefair so aussehen:


```
if (Mauseklick = rechts)
{
  Anweisung1;
}
if (Mouseklick = links)
{
  Anweisung2;
}
```


----------



## Ebenius (5. Jan 2004)

Am einfachsten geht's mit diesen Methoden:
SwingUtilities.isLeftMouseButton(MouseEvent anEvent), isRight..., a.s.o.

Es grüßt Ebenius


----------



## Math55 (5. Jan 2004)

hi, hier mal noch was:


```
public class MyMouseListener extends MouseAdapter {
        public void mouseClicked(MouseEvent evt) {
            if ((evt.getModifiers() & InputEvent.BUTTON1_MASK) != 0) {
                //links            }
            if ((evt.getModifiers() & InputEvent.BUTTON2_MASK) != 0) {
                //mitte            }
            if ((evt.getModifiers() & InputEvent.BUTTON3_MASK) != 0) {
                //rechts
            }
        }
    }
```


dann noch adden:


```
deineComponent.addMouseListener(new MyMouseListener());
```

hilft das?

gruß math55


----------



## TSlaughter (7. Jan 2004)

public void mouseClicked(MouseEvent e)
{
 if (e.getButton()==3) // rechts click
{  
dann Aktion 
}
else  if (e.getButton()==1) //links click
{
dann andere Aktion
}

vorher musst du noch den MousListener Adden.

du musst dich entscheiden ob MouseClicked() oder MousePressed()


----------



## AlArenal (7. Jan 2004)

Geht das auch aufm Mac mit Original-Apple-Maus? 

Wird der passende Event dann bei Apfel-Shift-Mausklick (oder wie auch immer das da geht) ausgelöst?


----------



## Stefan1200 (7. Jan 2004)

TSlaughter hat gesagt.:
			
		

> public void mouseClicked(MouseEvent e)
> {
> if (e.getButton()==3) // rechts click
> {
> ...



Ansich geht das (verwende ich teilweise auch).
Aber diese Variante hat ein Problem mit der rechten Maustaste.
Viele Windows Nutzer haben auch noch eine 2 Tasten Maus, hier wäre die rechte Maustaste die Nummer 2, nicht 3.
Lediglich wenn man nur sicher gehen will, das die linke Maustaste gedrückt wurde, ist diese Variante zuverlässig.


Bezüglich Mac: Habe ich noch nicht getestet, aber im Zweifelfall kann man auch mit e.isAltDown(), e.isControlDown() oder e.isShiftDown() abfragen, ob eine von diesen Tasten beim Mausklick gedrückt wurde.


----------



## Ebenius (7. Jan 2004)

Wenn Du es für den Mac kompatibel halten willst, mach es anders: Normaler Maus-Klick:
	
	
	
	





```
if(SwingUtilities.isLeftMouseButton(mouseEvent)) // -> linke Maus-Taste -> Maus-Klick!
```
Wenn Du dann einen PopUp (z.B. Kontext-Menü) machen willst, dann prüfst Du statt dessen:
	
	
	
	





```
if(mouseEvent.isPopupTrigger()) // -> Popup, ContextMenu -> Plattform dependent
```
So gehst Du kein Risiko ein. Und es funktioniert!

*Bezüglich der Event-Masken*:





			
				Math55 hat gesagt.:
			
		

> ```
> public class MyMouseListener extends MouseAdapter {
> public void mouseClicked(MouseEvent evt) {
> if ((evt.getModifiers() & InputEvent.BUTTON1_MASK) != 0) {
> ...


Das ist erstmal richtig, allerdings ein bisschen unleserlicher als mit den SwingUtilities.

Es grüßt Ebenius


----------



## Math55 (7. Jan 2004)

ok, ichs gebs zu. aber ich machs halt immer so 


gruß


----------

