0

方法はわかりませんが、 JButton が押されたときにメソッドの実行を開始し、もう一度クリックするとそのメソッドを一時停止するようにします。また、メソッドは継続的に実行する必要があります。現在、ボタンが一時停止して開始せず、継続的に実行されません。

private JButton playButton = new JButton("Play!");
playButton.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e)
{
     ?????
} 

私の問題に対する答えがそこにあることは知っていますが、私の試みは壊れないwhileループで終わったばかりです。

他の人に尋ねたところ、別のスレッドで何かを実行する必要があると言われました。問題は、スレッドについて何も知らないことです。スレッドなしでそれを行う他の方法はありますか?

4

2 に答える 2

0
boolean running = false;
private JButton playButton = new JButton("Play!");
Thread stuff = new Thread(new RunningThread());
playButton.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e)
{
    if (!running) {
        stuff.start();
        running = true;
    }
    else {
        if (stuff.isAlive()) {
            stuff.stop();
        }
        running = false;
    }

} 

public class RunningThread implements Runnable {

    public RunningThread() {
    }

    @Override
    public void run() {
        //DO STUFF: You also want a way to tell that you are finished and that the next button press should start it up again, so at the end make a function like imDone() that sends a message to your page that changes running = false;
    }

}

このようなものがうまくいくはずです。唯一の問題は、これが一時停止ではなく停止であることです。一時停止はもう少しトリッキーで、関数内で正確に何が起こっているかに依存します。

于 2013-05-30T18:48:45.257 に答える