2016-03-25 5 views
1

Я хочу, чтобы иметь возможность нажимать кнопку, и создается небольшая игра с использованием Java 2d. я пытался использовать TRY/поймать, но она застревает в бесконечном цикле (из цикла в то время как в методе создания я думаю)Как вызвать метод, который требует InterrupedException в JButton ActionListner

Button.addActionListener(new ActionListener() { 
       public void actionPerformed(ActionEvent e) { 

         game.create();/***is a new window with a small 2d game, 
         the 'create' method requires and InterruptedException to be thrown.***/ 




       } 

      }); 

здесь код из метода создания:

public void create() throws InterruptedException { 

    JFrame frame = new JFrame("Mini Tennis"); 
    GameMain gamemain = new GameMain(); 
    frame.add(gamemain); 
    frame.setSize(350, 400); 
    frame.setVisible(true); 
    frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 

    while (true) { 
     gamemain.move(); 
     gamemain.repaint(); 
     Thread.sleep(10); 

    } 
} 

ответ

2

Я считаю, что ваш бесконечный цикл блокирует ответный поток от ответа на вашу кнопку.

Попробуйте иметь свой цикл в отдельном потоке:

public void create() throws InterruptedException { 

    JFrame frame = new JFrame("Mini Tennis"); 
    GameMain gamemain = new GameMain(); 
    frame.add(gamemain); 
    frame.setSize(350, 400); 
    frame.setVisible(true); 
    frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 

    (new Thread() { 
    public void run() { 
     while (true) { 
      gamemain.move(); 
      gamemain.repaint(); 
      Thread.sleep(10); 
     } 
    } 
    ).start(); 
} 
+0

да что работал отлично спасибо! – tamalon

+0

Я рад помочь! –

 Смежные вопросы

  • Нет связанных вопросов^_^