我正在用Java编写游戏,这是我试图让“漂亮”的第一个游戏。这款游戏被称为Bantumi--这是一款棋盘游戏,现在我正在编制动作动画。问题在于,当运动动画运行时,棋盘仍然会获得鼠标事件,如果用户选择了新动作,运行动画将被丢弃。如何在窗口上暂时阻止鼠标侦听器?
对于主板,我使用了扩展JLayeredPane的类。这我如何有我的图层:
第0层:与种子的孔,所以用户选择一个为运动,每个孔是与MouseListener的JPanel。
1层:这标志着当前选定的孔
层2中的突出显示:运动的动画。
层10:自定义通知系统类,我写的,它说的东西,如“现在轮到你了”,“重复转向”,“你赢了”,等等。
我想,以防止一切可能的鼠标事件动画运行时的任何这些图层,我该怎么做?我认为在顶级选手中添加一个覆盖整个区域的面板已经足够,但它不起作用。任何解决方法?
这正是我需要的。我尝试了类似的东西,唯一的区别是我没有将鼠标监听器添加到顶部窗格,我认为这是必要的。谢谢。 – 2012-02-20 22:55:10
@DanielRivas:是的,这是必要的,因为组件必须是可见的,并且必须捕获鼠标事件才能工作。否则,鼠标事件将滑过。 – 2012-02-20 23:07:30
因为GlassPane可以阻止来自MouseXxx的事件,所以KeyListener可以工作并继续监听键盘事件,因为[Disabled Glass Pane](http://tips4java.wordpress.com/2008/11/07/disabled-glass-pane/ )@camickr – mKorbel 2012-02-20 23:25:53