在Java中,当您将鼠标悬停在单个按钮上时,是否有可能让程序认为您正在将鼠标悬停在多个按钮上? 我正在使用带按钮的多维数组,并且希望能够一次悬停5个按钮。 (实际悬停附近的所有按钮)。
关于如何做到这一点的任何想法?
注意:我不使用JButton,只使用常规按钮。 (awt.Button)
修改 我显然不够清楚,我为此道歉。 这是我正在寻找的截图:
因此,光标悬停在第一个灰色空间上,并且它旁边的所有空间都有不同的背景,但是,它们不会被视为悬停,如果我需要的话。
答案 0 :(得分:3)
假设您正在使用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>
的引用。如果是侦听器的业务是处理这些按钮,那么设计你的类以便它发生。