So I have created a program which does the intended purpose of sending random keystrokes. Now I have implemented a very basic GUI with a Start/Stop button. The program is meant to run when the integer "running" is equal to 1. So I decided to make the button change the value of running from 0 to 1, starting the loop.
Here is the code:
public class AutoKeyboard extends JFrame {
public static int running = 0; // program will not run until this is 1
Random r = new Random();
public static int randInt(int min, int max) { // returns random number
int randomNum = rand.nextInt((max - min) + 1) + min;
return randomNum;
}
private JLabel label;
private JButton button;
public AutoKeyboard() {
setLayout(new FlowLayout());
label = new JLabel("Not Running");
add(label);
button = new JButton("Start");
add(button);
event f = new event();
button.addActionListener(f);
}
public class event implements ActionListener {
public void actionPerformed(ActionEvent f) {
label.setText("Running");
System.out.println("Running");
running = 1; // changes running to 1? but doesn't start the program?
}
}
public static void main(String[] args) throws InterruptedException {
AutoKeyboard gui = new AutoKeyboard();
gui.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
gui.setSize(180, 80);
gui.setVisible(true);
gui.setResizable(false);
gui.setTitle("Anti AFK");
while (running == 1) { // if running is 1, do this
try {
int delay = randInt(4864,7834); // 336415, 783410 15 97
Robot robot = new Robot();
int keypress = randInt(65, 86);
Thread.sleep(delay);
robot.keyPress(keypress);
} catch (AWTException e) {
e.printStackTrace();
}
}
}
}
My problem is, whenever I press my JButton "Start" it doesn't seem to change int running to 1, and the program doesn't start. Whenever I change the int manually in the code, the program will work. So the problem is the JButton is not updating the variable. Why? I'm really confused.
Thanks everyone for reading.