Предполагая, что вы используете MouseListener
, когда метод mouseEntered(MouseEvent e)
вызывается на главной кнопке, явно вызовите этот же метод на всех слушателях всех других кнопок, передавая событие, которое вы получили.То же самое для метода mouseExited(MouseEvent e)
.
Вы должны поддерживать ссылку от главной кнопки на подчиненные кнопки.
Слушатели подчиненных кнопок получат событие, которое относится к главной кнопке.При необходимости создайте своих слушателей со ссылкой на кнопку, к которой они прикреплены, чтобы вы могли работать с этой кнопкой при получении события.
РЕДАКТИРОВАТЬ:
Это видвещь, о которой я говорю.Помогает ли это?
final List<Button> subordinateButtons = Arrays.asList(new Button(), new Button(), new Button());
Button myButton = new Button();
myButton.addMouseListener(new MouseListener() {
public void mouseEntered(MouseEvent e) {
for (Button subordinateButton : subordinateButtons) {
subordinateButton.setBackground(Color.GRAY);
}
}
public void mouseExited(MouseEvent e) {
for (Button subordinateButton : subordinateButtons) {
subordinateButton.setBackground(Color.LIGHT_GRAY);
}
}
public void mouseClicked(MouseEvent e) {
}
public void mousePressed(MouseEvent e) {
}
public void mouseReleased(MouseEvent e) {
}
});
Нет причин, по которым вы не можете сохранить ссылку от MouseListener
до List<Button>
.Если работа с этими кнопками - дело слушателя, разработайте классы так, чтобы это произошло.