所以我想制作一个按住鼠标按钮的程序。
到目前为止,我已经得到了这个: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) ;
}
}
}
答案 0 :(得分:0)
向框架添加一个键侦听器,按下该键后,停止按下。请注意,如果框架失焦,这将不起作用,在这种情况下,您将不得不听全局按键操作,我认为这将更加困难。