0

私は AWT を学んでおり、後で Swing を学ぶ予定です。

次のメソッドが存在するときにアプレットが実行を開始することを知っていることから、アプレットの次のコードを見つけました: main()、init()、start()、paint()...

アプレットは、マウスがクリックされるたびに幅と長さの寸法を増やします:

このコードには上記のいずれもありません。ResizeMe メソッドはどのように呼び出されますか? サイズ変更メソッドが呼び出されない場合、addmouselistener はどのように呼び出されますか?? 編集:ところでコードは動作します

// Resizing output to fit the current size of a window.
import java.applet.*;
import java.awt.*;
import java.awt.event.*;
/*
  <applet code="ResizeMe" width=200 height=200>
  </applet>
 */

public class ResizeMe extends Applet {
  final int inc = 25;
  int max = 500;
  int min = 200;
  Dimension d;

  public ResizeMe() {
    addMouseListener(new MouseAdapter() {
      public void mouseReleased(MouseEvent me) {
        int w = (d.width + inc) > max?min :(d.width + inc);
        int h = (d.height + inc) > max?min :(d.height + inc);
        setSize(new Dimension(w, h));
      }
    });
  }
  public void paint(Graphics g) {
    d = getSize();

    g.drawLine(0, 0, d.width-1, d.height-1);
    g.drawLine(0, d.height-1, d.width-1, 0);
    g.drawRect(0, 0, d.width-1, d.height-1);
  }
}

ありがとう、ルター

4

4 に答える 4

2

はい、mainデスクトップ アプリケーション用です。次のメソッドは、アプレットのライフ サイクルの特定の時点で呼び出され、そのライフ サイクルに固有の処理を実行できます。

  • init - 最初に
  • start - HTML ページが (再) 開始するとき
  • stop - HTML ページを離れるとき
  • destroy - アプレットがアンロードされるとき

さらに、AWT のコンポーネント部分は本当に時代遅れです。java.awt.Color、Font などのみが使用されており、Applet、Button などは簡単に見つけることができません。

そのため、すぐにスイングに切り替えることをお勧めします。


AWTには、すべてのピュア Java コンポーネントがネイティブ コード (オペレーティング システム) コンポーネントとピアリングされています。したがって、ボタンは Windows では実際の Windows ボタンです。そのため、Windows、Mac、および Linux 用に個別の AWT 実装があります。

Swingはそれ自体ですべてを行い、いくつかのルック アンド フィール (テーマ/スキン) を備えています。システム ルック アンド フィークは、現在のオペレーティング システムを可能な限りエミュレートします。Swings の利点は、JLabel のようにアイコンとテキストの間の距離を最小限に抑えたり、"<html><b>Boldly</b> go, ...".

Swing は新しい取り組みでした。

于 2013-07-29T16:54:31.510 に答える
2

ResizeMe()コンストラクタです。したがって、クラスの作成時に呼び出されるため、マウスリスナーが追加されます。paint()GUI イベント処理スレッドによって呼び出されます。

于 2013-07-29T16:56:15.690 に答える
0

ResizeMe はアプレットを拡張しています。つまり、アプレットが持つすべてのメソッドを継承しています。Docs for Appletを見て、どのメソッドが含まれているか、どのメソッドが親から継承されているかを確認してください。

また、AWT を学習してから Swing を学習する必要はまったくありません。

于 2013-07-29T16:57:53.667 に答える