java - 如何停止程序等待用户操作?
问题描述
我有一种方法可以在点击时移动
public void processMove(int fromX, int fromY, int toX, int toY) {
...
if (moveCorrect()) {
makeMove(fromX, fromY, toX, toY);
}
...
}
该方法从鼠标点击的处理程序中调用,添加到特定的 JPanel。这个逻辑工作正常,直到我发现当他们到达最后一行时可以转换棋子。所以我应该显示覆盖,其中用户将选择将要转换的棋子。所以我叫 PawnTransformOverlay。
if (//if pawn reaches last line) {
PawnTransfromOverlay.showOverlay();
}
我实际上想停止程序,直到用户单击,从覆盖中获取单击的部分并转换 pawn 而不离开此if
语句。我现在唯一能想到的选择是为 PawnTransformOverlay 制作处理程序并调用一些函数,比如transformPawn()
在点击时从这个处理程序中调用。但后来我将不得不复制这些fromX, fromY, toX, toY
以使用它们 transformPawn()
。这似乎是我不知道的更好的方式。
有可能吗,还是有其他方法可以做得更好?每个想法和提示都会非常有帮助!!!
为了更好地理解我要问的问题: https ://github.com/Yonshoku/Chess2
并链接到我无法找到正确方法的课程: https ://github.com/Yonshoku/Chess2/blob/master/src/chessgui/Game.java
解决方案
推荐阅读
- azure - Azure Kubernetes 服务:如何自动将 Pod 从 Spot 节点池移动到常规节点池?
- google-cloud-platform - 使用 istio 和 GKE 的多集群入口
- azure - 在 Azure API 管理中仅传递 1 个标头而不是 Authorization 和 Ocp-Apim-Subscription-Key
- python - 有没有办法用它的索引替换一个numpy数组中的元素
- javascript - 为什么我的一张图片没有显示在 Gatsby 页面上?
- flutter - 如何在颤动中更新列子 onDragComplete
- formatting - 乳胶输出“?figurename?” 在输出文件中被问号包围
- docker - docker-compose.yml 文件并始终拉取最后构建的图像(没有 :latest 标签)
- c++ - c ++查找相似的文件名
- docker - 无法下载漏洞数据库 - Trivy by aquasecurity