循环完成后,所有按钮和文本字段都可用,但循环运行时无法单击任何内容。 我尝试了很多不同的事情,查看了很多不同的网站,但没有什么可以帮助我。我不知道出了什么问题!
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import java.util.*;
public class J extends JFrame implements ActionListener{
JButton start = new JButton("Start (F12)");
JButton stop = new JButton("Stop");
int i;
JLabel delay = new JLabel("Delay: ");
JTextField delayJTF = new JTextField(4);
int delayS = 0;
GridLayout bl = new GridLayout(10, 10);
public J()
{
super("Auto Clicker");
start.addActionListener(this);
stop.addActionListener(this);
setSize(300, 300);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setLayout(bl);
add(delay, BorderLayout.NORTH);
add(delayJTF, BorderLayout.NORTH);
add(start);
add(stop);
setVisible(true);
}
boolean run = false;
public static void main(String[] args) {
J j = new J();
}
public void robott() {
try {
Robot robot = new Robot();
Thread.sleep(delayS);
robot.mousePress(InputEvent.BUTTON1_MASK);
robot.mouseRelease(InputEvent.BUTTON1_MASK);
// robot.delay(delayS);
} catch(Exception exc) {
System.out.println(exc);
}
}
public void actionPerformed(ActionEvent e) {
String delaySt = delayJTF.getText();
delayS = Integer.parseInt(delaySt);
System.out.println(delayS);
while(i < 100) {
i++;
robott();
System.out.println(i);
}
}
}
any suggestions?
最佳答案
您正在事件调度线程中循环 - 该线程处理 GUI 绘制和用户输入。所有操作事件都在该线程上处理。如果您需要执行长时间运行的任务(以及其他阻塞操作,如 I/O),您应该考虑将这些任务卸载到工作线程。看看this tutorial了解更多信息。
关于java - 谁能帮我解释为什么我的 GUI 在循环运行时不可点击?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11624443/