今日は、JAVA Swing勉強中の初心者です。
本を読むとAWTは重量コンポーネント、Swingは軽量コンポーネント(一部重量コンポーネントもある)と
書かれていますが、これは一体何を意味するものでしょうか。
読んでても良く分からないのですが、重量コンポーネントはOSに近い所で動作する、軽量コンポーネントはその逆、、、
この内容について、プログラムを組む人間は何に気をつけなければならないのでしょうか。
どうも重量コンポーネントだから動作が重たいとか、遅いとか、メモリの消費が多いとかという解説も
見当たらないし、また、どちらが動作的に速いのか、遅いのか、OSへの負担が大きいのかも書いていません。
(読んでる本が悪すぎるのかも知れないですが。。。。)
だから、AWTを使うときはどのように気をつけなければとか、Swingを書くときにどうしなければならないとかの記述
も、色々と調べてもどの本にも書いていませんが、だから一体何がどうなのでしょうか。
そもそも、重量コンポーネント、軽量コンポーネントとは何を表すもので、だから何がどうなるのでしょうか。
動作的なものについての記述なのでしょうか。
宜しくお願いします。
No.1ベストアンサー
- 回答日時:
重量・軽量というのは「コスト」の話だろうと思う。
コストというのは、メモリの消費とかCPUの使用量とかいろいろあるが、この場合は「ネイティブ環境のリソース」(ヒープメモリ)と考えるのがいい。AWTは、実際の描画部分をOSのAPIに依存しているため、作成すると自動的にOSのリソースを消費する。つまり、AWTのGUIを使うほどに、OSのヒープを圧迫することになる。Swingの場合、土台となるウインドウ部分だけはOSのリソースを消費するが、その中のコンポーネントはすべてJava仮想マシン内のメモリしか使っていないわけで、OSへの影響はだいぶ小さい。
また、OSが管理する部分は、Java仮想マシンでは制御できない部分となる。つまりそれだけAWTは「Javaで制御できない部分」が大きいということになる。
だからどうしろ?ということより、「そういう性質のものであることを知って使う」という意味での、基礎知識と考えたほうがいいと思う。AWTは、Swingより高速だがOSへの依存度が高く、このため表示のカスタマイズもできない。それを知らず、AWTのコンポーネントクラスを継承して自分でコンポーネントを作ろうとして、「どうやっても表示がカスタマイズできない」と悩むのは時間の無駄だろう。どうあがいても「ネイティブコードで実行される描画」はJavaからタッチできないんだから。
「両者がどう違うか」を知っていればそんな無駄なことで悩まずにすむが、知らなければ一人でもがくことになってしまう。だから「知識として知っておくべき」と考えればいいと思う。
No.2
- 回答日時:
> そもそも、重量コンポーネント、軽量コンポーネントとは何を表すもので、だから何がどうなるのでしょうか。
> 動作的なものについての記述なのでしょうか。
各GUIが軽快に動作するのかどうか、です。
Sun SJC-A認定ガイド
310-019対応
http://ec.nikkeibp.co.jp/item/books/P82820.html
上記の専門書のp.217辺りにある「6.4.2 AWTとSwing」にて、リッチクライアントなどの用語と共に記載されています。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- 政治 リーダーシップと外交政策についての発表をするのですが、 リーダーシップの対外政策への影響を受け、リー 1 2023/05/07 14:22
- Windows 10 Windows Updateの更新ができない場合に初期化 3 2023/01/18 20:00
- 防犯カメラ・監視カメラ・小型カメラ VHSを高画質な動画ファイルにしたいです。 3 2022/05/06 12:08
- 建設業・製造業 測量業初心者向けの解説本などはありますか 2 2023/07/12 20:58
- 物理学 長さaの軽い棒の各端に質量mの物体A,Bを取り付け、なめらかな床の上におき、これを棒の中点Oを中心と 2 2022/10/09 19:16
- JavaScript useStateの分割代入について 1 2022/05/06 10:02
- 格闘技 近年、階級別の競技で体重超過が話題になりますが、 あれってそもそもが不思議ですよね。 試合開始直前に 2 2023/07/02 22:08
- 物理学 重力による時間の遅れ 一般相対性理論においては、重力は空間(時空)を歪ませ、時間の進みを変化させる。 6 2023/03/13 10:56
- 物理学 物体の時間は量子のスピン等の速度と比例するのですか?! 原子時計って原子の電波を内部のデジタル回路で 5 2023/01/01 15:52
- 地球科学 1年で5万トン⁉ 地球が少しずつ軽くなっている理由 4 2023/03/07 20:43
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
VB.NETでフォーム上にExcelのよ...
-
VB.NETでMSComm が追加できず?
-
文字の色の変更
-
VBでCPUの使用率を取得できます...
-
requestFocusについて
-
ダイアログでタイトルバーを非表示
-
ツールボックスのような折りたたみ
-
エクセルVBAで、条件に一致する...
-
変数名の付け方
-
Java初級 引数に適用できません
-
mainメソッドのthrows節で設定...
-
private static という変数の修飾
-
クラス間でのデータ参照
-
「タイプ初期化子が例外をスロ...
-
インスタンス参照でアクセスで...
-
グローバルIPとプライベートIP...
-
onClickで関数呼出し後に、結果...
-
C# インスタンスの破棄
-
複数の変数を宣言する時、同時...
-
Labelコントロールに数字を代入...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
VB.NETでフォーム上にExcelのよ...
-
ファイル保存先のダイアログが...
-
requestFocusについて
-
C#で設定時刻到来時にイベント...
-
Buttonの色
-
JScrollPane上のJTableの再描画
-
VB6のツールボックスへのコンポ...
-
VB.NETでMSComm が追加できず?
-
Visual Basic 2010を使ってRS-2...
-
JButton配列でのイベント処理
-
tableView reloadDataが出来ない
-
C++ Builder でVisibleとshow
-
画像を一瞬だけ表示する。
-
VBSでCDトレイのオープン/ク...
-
フレーム上のコンポーネントの...
-
[delphi] 変数を利用してコンポ...
-
ツールボックスのような折りたたみ
-
ダイアログでタイトルバーを非表示
-
文字の色の変更
-
ゲーム画面(JFrame)のサイズ変...
おすすめ情報