如何使用Java制作自动点击器?

时间:2015-06-04 13:54:02

标签: java

所以我想制作一个按住鼠标按钮的程序。

到目前为止,我已经得到了这个:http://pastebin.com/UTJwdHY7

我想知道的是我如何阻止它。此外,我意识到停止按钮是没有意义的,因为我无论如何都无法点击它。关于我到目前为止所做的一些提示也很不错。

编辑(添加代码):

package main;

import javax.swing.*;
import javax.swing.border.LineBorder;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.InputEvent;
import java.beans.PropertyChangeListener;

public class clickForever extends JFrame implements ActionListener {

public static boolean isClicking = false;

public void actionPerformed(ActionEvent e) {}

public void createFrame() { initComponents(); }

public void initComponents() {

    JFrame frame = new JFrame("AutoClicker");
    JPanel panel = new JPanel(true);
    JButton button = new JButton("OKAY");
    JLabel label = new JLabel();

    frame.setVisible(true);
    frame.setSize(350, 67);
    frame.setResizable(false);
    frame.setDefaultCloseOperation(EXIT_ON_CLOSE);
    frame.setLocationRelativeTo(null);
    frame.getContentPane().add(panel, BorderLayout.CENTER);
    frame.add(panel);

    button.addActionListener(new Action() {

        @Override
        public Object getValue(String s) {
            return null;
        }

        @Override
        public void putValue(String s, Object o) {}

        @Override
        public void setEnabled(boolean b) {}

        @Override
        public boolean isEnabled() {
            return false;
        }

        @Override
        public void addPropertyChangeListener(PropertyChangeListener propertyChangeListener) {}

        @Override
        public void removePropertyChangeListener(PropertyChangeListener propertyChangeListener) {}

        @Override
        public void actionPerformed(ActionEvent actionEvent) {

            if(isClicking){isClicking = false; return;}
            if(!isClicking){isClicking = true; return;}
        }
    });

    label.setFont(new Font("Times New Roman", 1, 16));
    label.setText("Click 'OKAY' to start.");
    label.setBorder(BorderFactory.createLineBorder(Color.black));

    panel.add(label);
    panel.setBorder(new LineBorder(Color.BLACK));
    panel.add(button);

}

public static void main(String[] args) throws java.awt.AWTException, java.lang.InterruptedException {
    clickForever clickForever = new clickForever();
    Robot rbt = new Robot();

    clickForever.createFrame();

    while(true){
        if(isClicking) rbt.mousePress(InputEvent.BUTTON1_MASK);
        if(!isClicking) ;
    }
  }
}

1 个答案:

答案 0 :(得分:0)

向框架添加一个键侦听器,按下该键后,停止按下。请注意,如果框架失焦,这将不起作用,在这种情况下,您将不得不听全局按键操作,我认为这将更加困难。

相关问题