# Rechtsklick auf JButton



## BananenJoe (1. Dez 2010)

Hallo,

ich möchte, dass beim Rechtsklick auf einen JButton eine Aktion ausgeführt wird. Für Linksklicks klappt dies schon.
Hier wurde das Thema schonmal behandelt aber die scheinbarte Lösung hilft mir nich besonders iwie :-/
http://www.java-forum.org/awt-swing-swt/5189-rechtsklick-jbutton.html" <-- alter Thread

aber wie genau muss ich die Funktion

```
public void mouseClicked(MouseEvent e)
{
if(e.getSource()==JButton && e.getButton()== 3){...}
}
```
in das Progamm einbinden? Muss ich auch den MouseListener an den Button anknüpfen wie beim ActionListener ( button.addActionListener(AL); )

mfg


----------



## Michael... (1. Dez 2010)

bzgl. MouseListener unterscheidet sich der JButton nicht von den anderen Komponenten.


----------



## BrauniDeluxe (1. Dez 2010)

e.isPopupTrigger() sollte dein Problem lösen


----------



## KrokoDiehl (1. Dez 2010)

```
JButton myButton = ...;

myButton.addMouseListener(new MouseAdapter()
{
    public void mouseClicked(MouseEvent event)
    {
        if (event.isPopupTrigger())
        // oder
        if (SwingUtilities.isRightMouseButton(event) && event.getClickCount() == 1)
    
        {
            JButton btn = (JButton) event.getSourc();
            btn.doClick();
            // ggfs event.consume();
        }
    }    
});
```


----------



## BananenJoe (1. Dez 2010)

danke

mit deinem Beispiel klappt es. 

hier wird doch jetz auch die mouseClicked(MouseEvent me); - Methode der MouseListener-Klasse überschrieben, oder? und warum muss man das nich mit @Override machen wie beim normalen ActionEvent?

mfg


----------



## Onkel Hatti (1. Dez 2010)

Muss man nicht. Wenn man @Override weglässt, gibts nur ne Warnung.
Und jein, die Methode wird überschrieben, aber nicht die vom MouseListener, sondern die vom MouseAdapter.
MouseAdapter ist eine abstrakte Klasse, die das Interface MouseListener implementiert.

Hatti


----------

