gpt4 book ai didi

java - 如何在窗口上暂时阻止鼠标监听器?

转载 作者:行者123 更新时间:2023-12-04 00:32:27 25 4
gpt4 key购买 nike

我正在用 Java 编写一个游戏,这是我尝试制作“漂亮”的第一个游戏。这个游戏叫做 Bantumi——这是一个棋盘游戏,现在我正在为 Action 编写动画。问题是,当运动动画正在运行时,板仍然会收到鼠标事件,如果用户选择了新的运动,则正在运行的运动将被丢弃。

对于板,我使用了一个扩展 JLayeredPane 的类。这就是我的图层:

第 0 层:带有种子的孔,因此用户选择一个用于移动,每个孔都是一个带有 MouseListener 的 JPanel。

第 1 层:标记当前所选洞的高光

第 2 层:运动的动画。

第 10 层:我编写的自定义通知系统类,它会说“轮到你了”、“重复回合”、“你赢了”等内容。

我想在动画运行时阻止任何层中的所有可能的鼠标事件,我该怎么做?我认为在顶级播放器中添加一个覆盖整个区域的面板就足够了,但它没有用。任何解决方法?

最佳答案

要(暂时)禁用来自 MouseListener (KeyListener ....) 的事件,您可以使用

public void consume()
Consumes this event so that it will not be processed in the
default manner by the source which originated it.

例如

whatever.addMouseListener(new MouseListener() {

public void mouseClicked(MouseEvent e) {
if (somethingIsTrue) {
//do some stuff from mouse listener
} else {
e.consume();
}
}
.
.
.
}

关于java - 如何在窗口上暂时阻止鼠标监听器?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9369314/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com