より良い選択は何ですか?対象: Swing および AWT
どうすればもっと時間を節約できるのだろうと思っているので、この質問をしています。
より良い選択は何ですか? 対象: Swing および .awt
Swing は、ほとんどの目的に対してより堅牢で強力なライブラリです。
どうすればもっと時間を節約できるのだろうと思っているので、この質問をしています。
どのような方法で時間を節約できますか?
この質問の本質は何ですか?
あなたの状態を編集
:
私は CAD プログラムを作成しているので、知る必要があります。
この時点で、「クリアするか上に描画するか」についてそれほど心配するかどうかはわかりませんが、論理エンティティを適切に分離した全体的なプログラム設計についてもっと心配するでしょう。グラフィックの詳細をテストして、テストの結果に応じて変更することができますが、より重要なのは、堅牢で柔軟な設計であり、あらゆる種類のグラフィック デザインをプラグインできるようにすることです。
他のすべてのコメントの上に。
Swing には、画面全体を再描画するのではなく、画面の損傷した領域のみを再描画するために使用できる巧妙な再描画マネージャーがあります。
また、Swing はダブル バッファリングされているため、更新のちらつきが発生しにくくなっています。
スイングのコンポーネントのすべてのコードは純粋にJavaで書かれているのに対し、awtのコンポーネントのコードはjava以外のネイティブ言語で書かれているため、awtのコンパイル時間はswingよりも長くなるため、swingはawtよりも時間を節約します。時間を節約する場合はスイングが最適です。
一般的に言えば、クリアと再描画が推奨されるアプローチです。上に描画しようとするプログラムには、しばしば視覚的なバグがあります。
上に描画する典型的な使用例は、ウィジェットを描画するのが難しいプログラム (多くの機能を備えた非常に複雑な詳細を持つ CAD プログラムなど) に関連する問題の一部を排除することです。ただし、これらの場合でも、通常、上に描画しないようにする何らかの方法があります。たとえば、CPU 負荷の高いウィジェットをバッファーに描画し、そのウィジェットにないものが変更されるたびにバッファーを描画します。