ダークホースプログラマー_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()で取得します.)
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();
}
}