시작 버튼을 클릭하면 뒤로를 클릭하거나 중지 할 수 없습니다. 앱을 중지해야합니다. 앱을 중지하는 한 가지 방법은 컴퓨터의 전원을 꺼야한다는 것입니다. D. 앱이 실행 중일 때 시작 버튼이 잠겨서 클릭 할 수 없습니다. 종료 버튼을 클릭하면 작동하지 않습니다. 이 응용 프로그램은 간단한 AutoClicker입니다. 로봇 클래스보다 autoclicker를 더 잘하는 Java가 있습니까? 어떻게 해결할 수 있습니까? 어디에도 오류가 있습니까? 아니면 앱을 중지하기 위해 할 수있는 일이 있습니까? 발생하는 어떤 그림 그리기, 이벤트, 등 ...을 (동부 서머 타임)를 스레드를 잠그고 방지 할 스레드에 어떤 긴 실행중인 작업을 호출 -오토 클 릭커를 실행할 때 멈출 수 없습니다
import java.awt.AWTException;
import java.awt.BorderLayout;
import java.awt.EventQueue;
import java.awt.Robot;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.border.EmptyBorder;
import javax.swing.JCheckBox;
import javax.swing.JLabel;
import java.awt.event.ActionListener;
import java.awt.event.ActionEvent;
import java.awt.event.KeyEvent;
import java.awt.event.MouseEvent;
import java.awt.Color;
public class AutoClicker extends JFrame {
private JPanel contentPane;
private final JLabel m = new JLabel("AutoClicker");
/**
* Launch the application.
*/
public static void main(String[] args) {
EventQueue.invokeLater(new Runnable() {
public void run() {
try {
AutoClicker frame = new AutoClicker();
frame.setVisible(true);
} catch (Exception e) {
e.printStackTrace();
}
}
});
}
/**
* Create the frame.
*/
public AutoClicker() {
setAlwaysOnTop(false);
setTitle("AutoClicker");
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setBounds(100, 100, 147, 162);
contentPane = new JPanel();
contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));
setContentPane(contentPane);
contentPane.setLayout(null);
JCheckBox chckbxOnTop = new JCheckBox("On Top");
boolean onTop = false;
chckbxOnTop.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent arg0) {
if(chckbxOnTop.isSelected()){
setAlwaysOnTop(true);
}
else{
setAlwaysOnTop(false);
}
}
});
chckbxOnTop.setBounds(6, 7, 97, 23);
contentPane.add(chckbxOnTop);
JCheckBox chckbxAutoclicker = new JCheckBox("AutoClicker");
chckbxAutoclicker.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
while(chckbxAutoclicker.isSelected()){
try {
Robot r = new Robot();
r.mousePress(MouseEvent.BUTTON1_MASK);
r.setAutoDelay(1080);
r.mouseRelease(MouseEvent.BUTTON1_MASK);
} catch (AWTException e1) {
e1.printStackTrace();
}
}
}
});
chckbxAutoclicker.setBounds(6, 80, 97, 23);
contentPane.add(chckbxAutoclicker);
m.setForeground(new Color(153, 102, 0));
m.setBounds(16, 92, 120, 31);
contentPane.add(m);
}
}
왜 두 개의 중첩 무한 루프를 사용하고 있습니까? 그리고 왜 도대체'while (something)'대신'for (;;)'를 사용하고 있습니까? 그리고 당신의 프로그램이 모든 것을 끊는 것 외에는 무엇을 기대합니까? – luk2302
루프에 대해 두 개를 제거하고 루프 중에 하나를 추가하면 닫히거나 중지 할 수 없습니다. –
당신은 심지어 그것을 막으려 고하지 않았습니다 – luk2302