いくつかのメソッドを持つ Swing コンポーネントを作成しました。このクラスのすべてのメソッドを Swing イベント ディスパッチ スレッド (EDT) で実行し、呼び出し側はワーカー スレッドで実行したいと考えています。現在私の頭にある唯一の解決策はこれです:
このクラスの各メソッドについて:
public void a(params)
名前を次のように変更する必要があります。
private void aOnEDT(params)
別のメソッドを追加します。
public void a(params) {
SwingUtilities.invokeAndWait(new Runnable(){
public void run() {
aOnEDT(params);
}
});
}
でもこれ、まずくないですか?どうすればいいですか?