我有一个连续的动作,我可以通过按下JButton b1
来打电话。目前我已将一个MouseListener添加到b1,如果鼠标事件的来源,我会调用StartAction()
中的MousePressed()
和StopAction()
中的MouseReleased()
来控制此操作的连续性质碰巧是b1。
现在我希望能够通过键盘触发按钮。人们通常会通过ActionListeners来做到这一点。我能做到:
if (source.equals(b1)) {
startAction();
stopAction();
}
唯一的问题是,鼠标单击这样会触发ActionListener和mouseListener。我想我会尝试将动作监听器设置为:
if(source.equals(b1) && !(e instanceof MouseEvent))
{
...
}
但是这给了我:无法转换的类型无法将MouseEvent转换为ActionEvent 。
所以问题是:有没有办法知道动作事件是鼠标点击还是键盘触发?我应该使用其他类型的按钮吗?