jframe을 써서 하나의 창을 만들어 버튼1,2를 넣어줍니다.
버튼1은 on, 버튼2는 off.
버튼1을 누를시 runnable이 있는 만들어놓은 클래스를 실행하게 하는데
그 run부분을 무한반복 시켜놨어요
while을 통하여 무한반복시키는데 while(cnt), cnt는 boolean으로 둬서 버튼2를 누를시 cnt=false로 하여 반복종료를 하려하는데
버튼1을 누르면 그대로 jframe창이 멈추네요..
해결방법이 있을까요..소스코드도 첨부할게요
게임하다 단순히 대화창좀 편하게 넘기려하다가...
그냥 해도되긴하는데 왠지 안되니 완성시키고 싶어서 이러네요..
public class main{
public static void main(String[] args){
new k();
}
}
class k extends JFrame implements ActionListener{
mac a;
JButton btn1,btn2;
public k(){
setTitle("Mac");
setSize(190,160);
setLocation(300,300);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
JPanel p = new JPanel();
btn1 = new JButton("On");
btn2 = new JButton("Off");
p.setLayout(new GridLayout(2,1));
p.add(btn1);
p.add(btn2);
add(p);
btn1.addActionListener(this);
btn2.addActionListener(this);
setVisible(true);
}
public void actionPerformed(ActionEvent e){
if(e.getSource()==btn1){
a = new mac();
System.out.println("!");
}
else if(e.getSource()==btn2){
a.setCnt(false);
}
}
}
class mac extends JFrame implements Runnable{
Robot robot;
boolean cnt;
public mac(){
cnt=true;
try{
robot = new Robot();
}catch(AWTException e){}
this.run();
}
public void run() {
while(cnt){
try{
robot.keyPress(KeyEvent.VK_K);
robot.delay(50);
robot.keyRelease(KeyEvent.VK_K);
robot.delay(50);
}catch(Exception e){}
}
}
public void setCnt(boolean a){
cnt=a;
}
}