Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package com.autoclicker;
- import java.awt.Dimension;
- import java.awt.Robot;
- import java.awt.Toolkit;
- import java.awt.event.InputEvent;
- import java.util.Random;
- import javax.swing.JFrame;
- public class AutoClicker extends javax.swing.JFrame {
- private static final long serialVersionUID = 4035771675111011526L;
- private static int CLICK_INTERVAL = 40 * 1000; // 40 sec
- // private static int CLICK_INTERVAL = 5000; // 5 sec
- private Clicker clicker;
- public AutoClicker() {
- initComponents();
- setStartEnabled(true);
- clicker = null;
- }
- private void setStartEnabled(boolean state) {
- startButton.setEnabled(state);
- stopButton.setEnabled(!state);
- }
- private void initComponents() {
- startButton = new javax.swing.JButton();
- stopButton = new javax.swing.JButton();
- setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);
- startButton.setText("Start");
- startButton.addActionListener(new java.awt.event.ActionListener() {
- public void actionPerformed(java.awt.event.ActionEvent evt) {
- startButtonActionPerformed(evt);
- }
- });
- stopButton.setText("Stop");
- stopButton.addActionListener(new java.awt.event.ActionListener() {
- public void actionPerformed(java.awt.event.ActionEvent evt) {
- stopButtonActionPerformed(evt);
- }
- });
- javax.swing.GroupLayout layout = new javax.swing.GroupLayout(
- getContentPane());
- getContentPane().setLayout(layout);
- layout.setHorizontalGroup(layout.createParallelGroup(
- javax.swing.GroupLayout.Alignment.LEADING).addGroup(
- layout.createSequentialGroup()
- .addContainerGap()
- .addComponent(startButton,
- javax.swing.GroupLayout.DEFAULT_SIZE, 250,
- Short.MAX_VALUE)
- .addGap(28, 28, 28)
- .addComponent(stopButton,
- javax.swing.GroupLayout.PREFERRED_SIZE, 239,
- javax.swing.GroupLayout.PREFERRED_SIZE)
- .addContainerGap()));
- layout.setVerticalGroup(layout
- .createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
- .addGroup(
- layout.createSequentialGroup()
- .addContainerGap()
- .addGroup(
- layout.createParallelGroup(
- javax.swing.GroupLayout.Alignment.LEADING,
- false)
- .addComponent(
- stopButton,
- javax.swing.GroupLayout.DEFAULT_SIZE,
- 185, Short.MAX_VALUE)
- .addComponent(
- startButton,
- javax.swing.GroupLayout.DEFAULT_SIZE,
- javax.swing.GroupLayout.DEFAULT_SIZE,
- Short.MAX_VALUE))
- .addContainerGap(
- javax.swing.GroupLayout.DEFAULT_SIZE,
- Short.MAX_VALUE)));
- pack();
- }// </editor-fold>
- private void startButtonActionPerformed(java.awt.event.ActionEvent evt) {
- startButton.setEnabled(false);
- stopButton.setEnabled(false);
- clicker = new Clicker();
- clicker.start();
- setStartEnabled(false);
- }
- private void stopButtonActionPerformed(java.awt.event.ActionEvent evt) {
- startButton.setEnabled(false);
- stopButton.setEnabled(false);
- clicker.killThread();
- clicker = null;
- setStartEnabled(true);
- }
- public static void main(String args[]) {
- AutoClicker frame = new AutoClicker();
- frame.setLocationRelativeTo(null);
- frame.setResizable(false);
- frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
- frame.setVisible(true);
- }
- // Variables declaration - do not modify
- private javax.swing.JButton startButton;
- private javax.swing.JButton stopButton;
- // End of variables declaration
- class Clicker extends Thread {
- private Robot robot;
- private Random random;
- private int clickHeight;
- private int clickWidth;
- private boolean toContinue;
- private int randomSlack;
- public Clicker() {
- try {
- robot = new Robot();
- random = new Random();
- Dimension screenSize = Toolkit.getDefaultToolkit()
- .getScreenSize();
- int screenHeight = (int) (screenSize.getHeight() + 1e-7);
- int screenWidth = (int) (screenSize.getWidth() + 1e-7);
- int minSlack = Math.min(screenHeight, screenWidth);
- randomSlack = minSlack / 8;
- clickHeight = screenHeight / 2;
- clickWidth = screenWidth / 2;
- } catch (Exception ex) {
- ex.printStackTrace();
- }
- }
- @Override
- public void run() {
- toContinue = true;
- while (toContinue) {
- try {
- Thread.sleep(CLICK_INTERVAL);
- if (toContinue) {
- for (int i = 0; i < 3 && toContinue; i++) {
- robot.mouseMove(clickWidth + getRandomSlack(),
- clickHeight + getRandomSlack());
- robot.mousePress(InputEvent.BUTTON1_MASK);
- robot.mouseRelease(InputEvent.BUTTON1_MASK);
- Thread.sleep(100);
- }
- // System.out.println("Clicked");
- }
- } catch (InterruptedException ex) {
- }
- }
- }
- private int getRandomSlack() {
- return random.nextInt(randomSlack) - (randomSlack / 2);
- }
- public void killThread() {
- toContinue = false;
- this.interrupt();
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement