3

SwingAWT(重いものと軽いもの) のコンポーネントを混ぜてはいけないという話を何度も耳にしました。

しかし、一度に 1 つのコンポーネントを表示するだけでよいとしたらどうでしょうJFrame。これまで見てきた主なことは、AWTコンポーネントが常に一番上にあるということですが、前にも言ったように、JFrame一度に 1 つのコンポーネントしかない場合、それは何の問題でしょうか?

編集:私がする必要があるのは、AWT Canvas. これをゲームに使用しているので、BufferStrategy.

したがって、私の質問は次のとおりだと思います。一度に1つのコンポーネントしか表示しない場合でもAWTSwingコンポーネントを混合しないという説得力のある理由はまだありますか?JFrame

またCanvas、私はすでに aの aだけで問題なく動作していますJFrameが、Swing に移行する利点は何ですか?

前もって感謝します :-)

4

3 に答える 3

4
  • 高性能ペイント、マルチメディア、または OpenGL、CAD/CAM ei からのグラフィックスのベクトル化には、AWT コンポーネントを使用する必要があります。

  • 本当に重要な理由がある場合にのみ、AWT コンポーネントを Swing JComponents と一緒に使用できます。

  • AWT と Swing を混在させたり、その逆を行ったりしないことをお勧めします。

  • ネイティブ OS から提供されたリソースに基づいている AWT コンポーネントの利点

  • 前世紀に開発が終了した AWT コンポーネントの欠点

  • Swing は、AWT コンポーネントとそのメソッドに基づいているか継承しています

于 2012-05-15T16:22:41.150 に答える
3

..JPanel最高の Swing の代替品はCanvas?

はいpaintComponent(Graphics)paint(Graphics)

于 2012-05-15T18:11:43.700 に答える
2

ほとんどの決定と同様に、それは本当にあなたにとって何が重要かという問題です。AWT と Swing を混在させるとパフォーマンスが低下し、テーマを使用しようとすると問題が発生します。そうは言っても、それが必要な場合は、これを行わない理由はありません。

Swing は AWT の上に構築されています。もちろん、Swing の方が新しく、高速で優れていますが、それでも AWT が持つすべての機能にアクセスできます。

ここでの本当の問題は、AWT を使用せずに必要なことを行う方法があるかどうかです。何をする必要があるかについての指針を教えてください。おそらく、Swing でそれを行う方法があるでしょう。

于 2012-05-15T16:24:17.653 に答える