Java:MouseClicked in Inner JPanel

Hallo,

erst mal vielen Dank für die Hilfe bei meinen letzten Fragen Smile

aber leider hab ich wieder eine kleine schwierigkeit bei der ich nicht weiter komme, und nicht genau weiss nach was ich googlen soll:

also, das problem ist ich haben einen JPanel (OuterPanel) der ein paar weiter JPanels (InnerPanel) enthält.

Das Problem ist dass der MouseListener des OuterPanel nicht reagiert wenn ich auf einen InnerPanel klicke.
Was muss ich machen dass das klappt:

public class Main {

 public static void main(String args[]) {
 MyJFrame frame = new MyJFrame();
 MyJPanel pan = new MyJPanel(); //outer JPanel
 pan.addMouseListener(new MouseAdapter() {

 @Override
 public void mouseClicked(MouseEvent e) {
 System.out.println("Clicked:"+e.getClickCount());
 }

 });

 frame.add(pan);
 frame.setVisible(true);
 }
}
//\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_

public class MyJPanel extends JPanel{

 public MyJPanel() {
 setBackground(Color.green);

 Color[] colors = {
 Color.white, Color.lightGray, Color.gray, Color.darkGray,
 Color.black, Color.red, Color.pink, Color.orange,
 Color.yellow, Color.green, Color.magenta, Color.cyan, Color.blue
 };

 //fügt neun kästchen hinzu
 for (int i=0; i

Ich glaube das ist ein Problem des Focus. Es ist immer so, das immer nur eine Komponente den Focus haben kann; entweder dein OuterPanél oder dein InnerPanel. Nur bei den Componenten, die auch den Focus haben können die Listener ausgelöst werden. Mit Component.setFocusable(boolean) dann der Focus umgestellt werden aber 2 gleichzeigig den Focus zu geben ist meines wissens nicht möglich. Ich würde dir mal empfehlen, in allen Panels mit setFocusable dir den Focus so einzurichten, das nur der/die/das OutorPanel ihn auf true hat und sollten die Komponenten darin auch reagieren sollen, das Signal vom OutorPanel weitergeben

Hallo,

danke für die Antwort, aber es scheint es scheint trotz gesetztem Focus nicht zu funtkionieren.

Also wie schon gesagt das Problem ist das ich eine OutJpanel habe der sehr viele InnereJpanels enthält, nun möchte ich einen klick in den outerpanel abfangen und x,y in relation zum outerpanel wiedergeben. Nur klappt das nicht wenn ich in einen innerpanel klicke.

mfg

Hier ist mal der code:

public class Main {

 public static void main(String args[]) {
 MyJFrame frame = new MyJFrame();
 MyJPanel pan = new MyJPanel(); //outer JPanel
 pan.addMouseListener(new MouseAdapter() {

 @Override
 public void mouseClicked(MouseEvent e) {
 System.out.println("Clicked:"+e.getClickCount());
 }

 });

 frame.add(pan);
 frame.setVisible(true);
 }
}
//\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_

public class MyJPanel extends JPanel{

 public MyJPanel() {
 setBackground(Color.green);

 Color[] colors = {
 Color.white, Color.lightGray, Color.gray, Color.darkGray,
 Color.black, Color.red, Color.pink, Color.orange,
 Color.yellow, Color.green, Color.magenta, Color.cyan, Color.blue
 };

 //fügt neun kästchen hinzu
 for (int i=0; i