誰かがこれら2つの違いと、両方が必要なインスタンスを強調できますか?!
両方を相互に使用するアプリケーションがありますが、一方が他方より優れているかどうかを知りたいです。明らかに彼らは両方とも受け入れますRunnable object、そして私にとっては-私は私が好きなものを使うことができると思います。
なぜこれら2つの類似した関数が異なるクラスにあるのですか?一方がawtにあり、もう一方がSwingにあることは知っていますが、同じことをしませんか?
誰かがこれら2つの違いと、両方が必要なインスタンスを強調できますか?!
両方を相互に使用するアプリケーションがありますが、一方が他方より優れているかどうかを知りたいです。明らかに彼らは両方とも受け入れますRunnable object、そして私にとっては-私は私が好きなものを使うことができると思います。
なぜこれら2つの類似した関数が異なるクラスにあるのですか?一方がawtにあり、もう一方がSwingにあることは知っていますが、同じことをしませんか?
SwingUtilities.invokeLater1.2で導入されたためにのみ存在しEventQueue.invokelaterますが、Swingは1.1で使用可能でした。JREでのSwingは、常にEventQueueバージョンと呼ばれています。swingall.jarコンポーネントを作成し、再描画時に保留中の操作を実行するハックがありました。
invokeLaterについてEventQueueです。この方法を直接使用することをお勧めします。SwingUtilitiesただのゴミ捨て場です。私は、SwingUtilities.invokeLaterおそらくSwingがAWTに依存していないという何らかの信念で、多くのことを使用しているのを見てきました。
実際、SwingUtilities#invokeLater(Runnable doRun)のコードは次のとおりです。
public static void invokeLater(Runnable doRun) {
EventQueue.invokeLater(doRun);
}
だからそれはまったく同じことです!
javadocで説明されているように、それらは同じです。たとえば、invokeAndWaitメソッドjavadocからのコピーアンドペーストです。
1.3以降、このメソッドはjava.awt.EventQueue.invokeAndWait()の単なるカバーです。
したがって、それらを混在させることができ、使用するバージョンは関係ありません。