Hallo,
ich habe ein Panel, in dem alle möglichen Elemente wie Panels Buttons etc. eingefügt werden und würde gerne einen MouseListener an das äußere Panel hängen, der für alle inneren Elemente auch gilt.
Dadurch will ich ein Highlighting für eine Toolbar erzeugen.
Ich habe mal eine Testklasse geschrieben, die das Problem vielleicht verdeutlicht. Sobald ich über den Button mit der Maus fahre ist das Highlighting unten weg. Hat jemand eine Idee wie ich den Listener für alle elemente gültig machen kann, ohne dass ich den Listener an jedes element dranhängen muss?
Danke!
Mathias
ich habe ein Panel, in dem alle möglichen Elemente wie Panels Buttons etc. eingefügt werden und würde gerne einen MouseListener an das äußere Panel hängen, der für alle inneren Elemente auch gilt.
Dadurch will ich ein Highlighting für eine Toolbar erzeugen.
Ich habe mal eine Testklasse geschrieben, die das Problem vielleicht verdeutlicht. Sobald ich über den Button mit der Maus fahre ist das Highlighting unten weg. Hat jemand eine Idee wie ich den Listener für alle elemente gültig machen kann, ohne dass ich den Listener an jedes element dranhängen muss?
Code:
public class TestListenerProblem extends JPanel {
JPanel caption;
public TestListenerProblem() {
this.setLayout(new BorderLayout());
caption = new JPanel();
caption.setBackground(Color.red);
this.add(caption, BorderLayout.SOUTH);
JButton b = new JButton("Test");
this.add(b);
this.addMouseListener(new ToolBarOptionListener());
}
class ToolBarOptionListener implements MouseListener {
public void mouseEntered(MouseEvent e) {
caption.setBackground(Color.orange);
validate();
}
public void mouseExited(MouseEvent e) {
caption.setBackground(Color.LIGHT_GRAY);
validate();
}
public void mouseClicked(MouseEvent e) {
}
public void mousePressed(MouseEvent e) {
}
public void mouseReleased(MouseEvent e) {
}
}
}
Danke!
Mathias