ダークホースプログラマー_JAVAユーザグラフィックインターフェース(GUI)


--------androidトレーニング、javaトレーニング、ご交流をお待ちしております!--------
JavaがGUIに提供するオブジェクトはjava.Awtとjavax.Swingの2つのパッケージに存在します  Awt:Abstract Window ToolKit(抽象ウィンドウキット)は、ローカルシステムメソッド実装機能を呼び出す必要があります.ヘビー級コントロールSwing:AWTに基づいて構築されたグラフィックインタフェースシステムで、より多くのコンポーネントを提供し、Javaによって完全に実現されています.移植性が向上し、addメソッドで他のコンポーネントを追加できる軽量レベルのコントロールContainer(コンテナ)です.コンテナ内のコンポーネントの排出方法はレイアウトです.一般的なレイアウトマネージャ:FlowLayout(フローレイアウトマネージャ)の左から右への順序.Panelのデフォルトのレイアウトマネージャ.BorderLayout(境界レイアウトマネージャ)東、南、西、北、中Frameのデフォルトのレイアウトマネージャ.GridLayout(グリッドレイアウトマネージャ)ルールのマトリックスCardLayout(カードレイアウトマネージャ)タブGridBagLayout(グリッドパッケージレイアウトマネージャ)不規則なマトリックス
Container内部パッケージは集合です.グラフィックスインタフェースはスレッドによって制御されます.Frameが作成されたばかりの頃は見えませんでした.既定は境界レイアウトマネージャです.1、setVisible()メソッドで表示を設定する必要があります2、setSize()メソッドでサイズを設定する必要があります.3,setLocation()でポップアップウィンドウの位置を設定4,setLayout()メソッドで使用するレイアウトマネージャを設定する.5,以上の2,3の方法はsetBounds()の方法に取って代わることができる.イベントリスニングメカニズムの特徴:1,イベントソース(グラフィックインタフェースコンポーネント)2,イベント(各イベントソース特有の対応イベントと共通イベント)3,リスナー(あるイベントをトリガーできるアクションをリスナーにカプセル化)の3つはjavaで定義されており,そのオブジェクトを直接取得すればよい.4.イベント処理でよく使用されるイベントリスナー:    ActionListener(アクティブListener)、WindowListener、KeyListener(キーボードListener)、MouseListener(マウスListener)は、これらのListenerが言い訳であるため、すべての抽象メソッドを書き換える必要がない場合があるため、抽象アダプタ(すべての抽象メソッドを実現したが、メソッド体は空)を使用することができる.これにより、書き直す必要がある方法を書き直すだけでいいです.イベントリスニングメカニズムの書き込みステップ:イベントソース(コンテナまたはコンポーネント)がイベントソースオブジェクトのaddXXXXListener()メソッドを介してリスナーをイベントソースに登録することを決定します.この方法では、XXXListenerのサブクラスオブジェクト、またはXXXListenerのサブクラスXXXXAdapterのサブクラスオブジェクトを受信する.一般的に匿名の内部クラスで表される.メソッドを上書きする場合,メソッドのパラメータは一般にXXXEventタイプの変数受信である.イベントがトリガーされると、イベントはオブジェクトにパッケージされて変数に渡されます.(イベントソースオブジェクトが含まれます.getSource()またはgetComponent()で取得します.)
 
import java.awt.*;
import java.awt.event.*;


class  FrameDemo
{

	//              。
	private Frame f;
	private Button but;

	FrameDemo()
	{
		init();
	}

	public void init()
	{
		f = new Frame("my frame");

		// frame      。
		f.setBounds(300,100,600,500);
		f.setLayout(new FlowLayout());

		but = new Button("my button");

		//      frame 
		f.add(but);


		//         。
		myEvent();

		//    ;
		f.setVisible(true);

	}
	private void myEvent()
	{
		f.addWindowListener(new WindowAdapter()
		{
			public void windowClosing(WindowEvent e)
			{
				System.exit(0);
			}
		});

		//            
		/*
		       。
		          ?
		           ,                   。
		            。
		     button   。            addActionListener。

		*/
		but.addActionListener(new ActionListener()
		{
			private int count = 1;
			public void actionPerformed(ActionEvent e)
			{
				//System.out.println("  ,    ");
				//System.exit(0);
				
				//f.add(new Button("Button-"+(count++)));
				//f.setVisible(true);
				//f.validate();

				//System.out.println(e.getSource());
				Button b = (Button)e.getSource();
				
				Frame f1 = (Frame)b.getParent();

				f1.add(new Button("button-"+count++));
				f1.validate();


			}
		});
	}



	public static void main(String[] args) 
	{
		new FrameDemo();
	}
}