javax.swing每当我设置动作监听器或更改监听器时,应用程序就会停止工作

7nbnzgx9  于 2021-07-03  发布在  Java
关注(0)|答案(0)|浏览(316)
@Override
public void stateChanged(ChangeEvent e) {
    if(Slider.getValue() == 7)
      while (true) {
        robot.mousePress(InputEvent.BUTTON1_DOWN_MASK);
        robot.delay(1000);
      }
...

我这样做,每当滑块点击数字7,自动舔开始,但每当自动舔正在运行,我不能再正确使用软件,我只能移动任何东西,除非我停止软件。它基本上卡住了,一旦autoclicker启动我的图形用户界面卡住后,按7在滑块
这是我的全部代码

package com.company.Iguana;

import javax.swing.event.ChangeEvent;
import javax.swing.event.ChangeListener;
import javax.swing.*;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.InputEvent;
import java.awt.event.KeyEvent;

public class MyCPS implements ChangeListener {
    JSlider Slider;
    JPanel panel;
    JLabel label;
    JFrame frame;

    String[] Buttons = {"Left Click", "Right Click"};
    JComboBox combo = new JComboBox(Buttons);
    Robot robot = new Robot();

    MyCPS() throws AWTException {

        frame = new JFrame("CPS");
        panel = new JPanel();
        label = new JLabel();
        Slider = new JSlider();
        ImageIcon image = new ImageIcon("BOAROR.png");
        frame.setIconImage(image.getImage());
        frame.getContentPane().setBackground(Color.YELLOW);
        frame.setTitle("Iguana.exe");
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        frame.setSize(420, 420);
        Slider = new JSlider(0, 23, 12);
        Slider.setPreferredSize(new Dimension(400, 200));
        Slider.setPaintTrack(true);
        panel.add(Slider);
        Slider.setMajorTickSpacing(4);
        Slider.setPaintLabels(true);
        Slider.setOrientation(SwingConstants.VERTICAL);
        label.setText("CPS" + Slider.getValue());
        label.setIcon(image);
        Slider.addChangeListener(this);
        panel.add(combo);
        panel.add(label);
        frame.add(panel);
        frame.setSize(420, 420);
        frame.setVisible(true);
        frame.pack();
        Slider.addChangeListener(new ChangeListener() {
            @Override
            public void stateChanged(ChangeEvent e) {
                if (Slider.getValue() == 7)
                    while (true) {
                        robot.mousePress(InputEvent.BUTTON1_DOWN_MASK);
                        robot.delay(1000);
                        robot.mouseRelease(InputEvent.BUTTON1_DOWN_MASK);
                    }
            }
        });
        combo.addActionListener(new ActionListener() {
            @Override
            public void actionPerformed(ActionEvent e) {
                if (Buttons.equals(combo.getItemAt(0)))
                while (true) {
                    robot.mousePress(InputEvent.BUTTON1_DOWN_MASK);
                    robot.delay(1000);
                    robot.mouseRelease(InputEvent.BUTTON1_DOWN_MASK);
                }
            }
        });
    }

    @Override
    public void stateChanged(ChangeEvent e) {
        label.setText("CPS" + Slider.getValue());
        if(Slider.getValue() == 5)
            System.out.println("Five");
    }
}

暂无答案!

目前还没有任何答案,快来回答吧!

相关问题