Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/303.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/178.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何调用在JButton ActionListner中需要InterrupedException的方法_Java_Jbutton_Actionlistener_Interrupted Exception - Fatal编程技术网

Java 如何调用在JButton ActionListner中需要InterrupedException的方法

Java 如何调用在JButton ActionListner中需要InterrupedException的方法,java,jbutton,actionlistener,interrupted-exception,Java,Jbutton,Actionlistener,Interrupted Exception,我想能够按下一个按钮,并使用Java2D创建一个小游戏。 我曾尝试使用try/catch,但它被卡在无限循环中(我想是因为create方法中的while循环) 以下是create方法的代码: public void create () throws InterruptedException { JFrame frame = new JFrame("Mini Tennis"); GameMain gamemain = new GameMain(); frame.add(g

我想能够按下一个按钮,并使用Java2D创建一个小游戏。 我曾尝试使用try/catch,但它被卡在无限循环中(我想是因为create方法中的while循环)

以下是create方法的代码:

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);

    }
}

我相信您的无限循环正在阻止swing线程响应您的按钮

尝试将循环放在单独的线程中:

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();
}
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();
}