【发布时间】:2012-12-14 05:09:55
【问题描述】:
我正在使用 JFrame 开发一个程序,我想意识到当您单击一个按钮时,另一个类中的循环必须工作。它正在工作,但速度很慢。在一秒钟内,您只能看到循环的一次迭代。我不明白为什么。您需要了解一些代码。 调用监听器:
playWithComputerButton.addMouseListener(new java.awt.event.MouseAdapter() {
public void mouseClicked(java.awt.event.MouseEvent evt) {
startLoop(1);
}
});
叫作:
if(gameMode == 2){
int i = 0;
while(i < 500){
int pos = ((Computer) playerA).thinkIt(board.getBoard());
display("bu pas : " + pos);
i++;
}
迭代和调用监听没有问题。 (我也尝试过其他迭代和“ActionListener”,但结果是一样的。
有什么解决办法?
【问题讨论】:
-
需要使用
SwingWorker进行与GUI无关的长操作 -
我建议快速阅读此answer,虽然它不是一个直接的答案,但它会突出您遇到的问题以及为什么 Nikolay 的答案实际上是正确的
-
这正是我想要的。它现在工作没有任何缓慢!谢谢 Nikolay 和 Madprogrammer。 @trashgod,感谢您的反馈。我会做的。
标签: java swing loops jframe mouse-listeners