Hallo,
ich habe ein Problem mit der Ereignisbehandlung von Komponenten auf einem JPanel.
Ich habe ein JPanel, auf dem diverse Komponenten (JButton, JLabel etc.) angeordnet sind. Mein Ziel ist, einen Rechtsklick auf dem Panel abzufangen, was ich auch gemacht habe. Der Rechtsklick soll im gesamten Panelbereich abgefangen werden, auch wenn er sich auf einem Button o.ä. ereignet.
Unten ist ein Quelltextausschnitt des Konstruktors; die Klasse RechtsklickListener erbt von MouseAdapter.
An sich funktioniert das Programm auch, nur habe ich folgendes Problem. Wenn der Rechtsklick zufällig auf dem Button (oder einer anderen Komponente) erfolgt, merkt das Panel nichts davon. Jetzt könnte ich natürlich den RechtsklickListener jeder Komponente zuweisen, was aber meiner Meinung nach recht unelegant ist.
Gibt es eine Möglichkeit, daß auch MeinPanel von einem Rechtsklick auf den Button benachrichtigt wird?
Gruß
Edo
ich habe ein Problem mit der Ereignisbehandlung von Komponenten auf einem JPanel.
Ich habe ein JPanel, auf dem diverse Komponenten (JButton, JLabel etc.) angeordnet sind. Mein Ziel ist, einen Rechtsklick auf dem Panel abzufangen, was ich auch gemacht habe. Der Rechtsklick soll im gesamten Panelbereich abgefangen werden, auch wenn er sich auf einem Button o.ä. ereignet.
Unten ist ein Quelltextausschnitt des Konstruktors; die Klasse RechtsklickListener erbt von MouseAdapter.
Code:
public MeinPanel (MeinMenue menue)
{
//den MouseListener an das Panel binden
RechtsklickListener rListener=menue.getRechtsklickListener();
this.addMouseListener(rListener);
//Label hinzufügen
kostenLabel = new JLabel();
this.add(kostenLabel);
//Button hinzufügen
okButton=new JButton("OK");
okButton.addActionListener(okListener);
this.add(okButton);
}
An sich funktioniert das Programm auch, nur habe ich folgendes Problem. Wenn der Rechtsklick zufällig auf dem Button (oder einer anderen Komponente) erfolgt, merkt das Panel nichts davon. Jetzt könnte ich natürlich den RechtsklickListener jeder Komponente zuweisen, was aber meiner Meinung nach recht unelegant ist.
Gibt es eine Möglichkeit, daß auch MeinPanel von einem Rechtsklick auf den Button benachrichtigt wird?
Gruß
Edo