0

テキスト領域のあるウィンドウを作成する作業コードがあります。コードはこちらです。このコードがどのように機能するかを理解しようとします。多くのことが明らかです。

  1. main メソッドは、TextAreaDeom クラス (JFrame のサブクラス) のインスタンスを作成します。つまり、main-method はウィンドウを作成します。
  2. main-method では、ウィンドウのいくつかの「パラメータ」を設定し、表示します。

テキスト領域をウィンドウのどの場所に配置したかは、私にはわかりません。コンストラクタの直前にテキスト領域が作成されていることがわかります。また、コンストラクターで、テキスト領域 (setText) のいくつかの「パラメーター」を設定していることもわかります。また、コンストラクターでスクロール領域を作成し、いくつかのパラメーターを設定していることもわかります。スクロール領域がテキスト領域に「接続」されていることがわかります (テキスト領域のインスタンスを使用してスクロール領域を作成しているため)。また、(現在のウィンドウを使用して) 「コンテンツ」というオブジェクトを作成し、スクロール領域を「コンテンツ」に「追加」していることもわかります。

しかし、テキスト領域がウィンドウに追加される場所はどこでしょうか? テキスト領域がスクロール領域に追加され、スクロール領域が「コンテンツ」に追加され、コンテンツがウィンドウオブジェクトの一部であると言えますか?

4

3 に答える 3

2

16 行目で、JTextArea オブジェクトをラップする JScrollPane を作成します。21 行目で、TextArea を含むこの JScrollPane を JFrame の ContentPane に追加します。新しいものを作成する代わりに getContentPane() を呼び出すと、ContentPane はすでに JFrame の一部になっています。
ContentPane のすべての要素は、JFrame の一部として表示されます。JFrame の add メソッドは便宜上のものであり、呼び出しを JFrames ContentPane に転送します。

于 2010-01-31T14:44:12.047 に答える
0

スクロールペインscrollingAreaは、テキスト領域を内側にして作成されます。scrollPaneは、テキスト領域m_resultAreaで作成されました( JScrollPaneコンストラクターのドキュメントを参照してください)。次に、フレームのコンテンツペインに追加されます。

于 2010-01-31T14:45:47.393 に答える
0

GUI 要素はEDT上に構築する必要があります。上記main()のプログラムのより信頼できる方法を次に示します。

public static void main(String[] args) {
    EventQueue.invokeLater(new Runnable() {
        @Override
        public void run() {
            JFrame win = new TextAreaDemo();
            win.setTitle("TextAreaDemo");
            win.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
            win.pack();
            win.setVisible(true);
        }
    });
}
于 2010-01-31T23:41:13.447 に答える