循环完成后,所有按钮和文本字段均可用,但是在循环运行时,无法单击任何内容。
我尝试了许多不同的东西,在许多不同的站点上进行了浏览,但没有任何帮助。我无法找出问题所在!
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/