0

私はSwingが初めてです。

私は持っている

itemActionButton.addActionListener(new ActionListener() {
    @Override
    public void actionPerformed(ActionEvent arg) {
        itemAction();
    }
});

しかし、ボタンがクリックされたとき、このアクションを別のスレッドで実行するのではなく、アクションが完了するまで親のフォームのスレッドを待機させてから、リフレッシュして追加のクリックを許可したいと思います。

これどうやってするの?

4

1 に答える 1

1

ActionListener のコードは EDT で実行されるため、GUI が再描画して他のイベントに応答することを防ぎます。

実行時間の長いタスクがあり、EDT をブロックしたくない場合は、別のスレッドを使用する必要があります。

SwingWorker を使用した詳細と解決策については、同時実行に関するSwing チュートリアルのセクションを参照してください。

于 2013-04-06T02:05:49.753 に答える