誰かがこれら2つの違いと、両方が必要なインスタンスを強調できますか?!
両方を相互に使用するアプリケーションがありますが、一方が他方より優れているかどうかを知りたいです。明らかに彼らは両方とも受け入れますRunnable object
、そして私にとっては-私は私が好きなものを使うことができると思います。
なぜこれら2つの類似した関数が異なるクラスにあるのですか?一方がawtにあり、もう一方がSwingにあることは知っていますが、同じことをしませんか?
誰かがこれら2つの違いと、両方が必要なインスタンスを強調できますか?!
両方を相互に使用するアプリケーションがありますが、一方が他方より優れているかどうかを知りたいです。明らかに彼らは両方とも受け入れますRunnable object
、そして私にとっては-私は私が好きなものを使うことができると思います。
なぜこれら2つの類似した関数が異なるクラスにあるのですか?一方がawtにあり、もう一方がSwingにあることは知っていますが、同じことをしませんか?
SwingUtilities.invokeLater
1.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()の単なるカバーです。
したがって、それらを混在させることができ、使用するバージョンは関係ありません。