6.GUIプログラミング

(1)AWT  javaに最初から提供されているGUIコンポーネントのことです。

    
package sample001;				
				
import java.awt.Frame;				
import java.awt.Graphics;				
import java.awt.event.WindowAdapter;				
import java.awt.event.WindowEvent;				
				
class sample001 extends Frame {				
	public static void main(String[] args) {			
		sample001 app = new sample001();		
	}			
				
	public sample001() {			
		setSize(1000, 500);		
		setVisible(true);		
				
		addWindowListener(new WindowAdapter() {		
			public void windowClosing(WindowEvent e) {	
				System.exit(0);
			}	
				
		});		
	}			
	public void paint(Graphics g) {			
		g.drawString("Hello Java AWT!", 10, 60);		
	}			
}				
(2)Swing  どのOSのウィンドウシステム上で使っても同じ見た目と操作ができるGUIコンポーネント。
package sample006;							
							
import java.awt.Container;							
							
import javax.swing.JButton;							
import javax.swing.JFrame;							
import javax.swing.JLabel;							
import javax.swing.JTextArea;							
							
class sample006 {							
	public static void main(String args[]) {						
		JFrame J = new JFrame("Label TEST");					
							
		// ウィンドウズをクローズしたら終了					
		J.setDefaultCloseOperation(J.EXIT_ON_CLOSE);					
							
		// フレームのコンテナを得る					
		Container C = J.getContentPane();					
							
		C.setLayout(null);					
		// ラベルを作る					
		JLabel L = new JLabel("ラベルです。");					
		// 文字列つきボタンを作る					
		JButton B = new JButton("P U S h");					
		//テキストエリアを作る					
		JTextArea T=new JTextArea("これがTextです。\n",3,20);					
		T.append("複数行のテキスト領域です");					
		T.insert("Area",7);					
							
		// ラベルをコンテナに入れる					
		C.add(L);					
		// ボタンをコンテナにいれる					
		C.add(B);					
		// テキストをコンテナにいれる					
		C.add(T);					
							
		//配置する。					
		L.setBounds(300, 100, 100, 100);					
		B.setBounds(300, 200, 100, 100);					
		T.setBounds(300, 300, 100, 100);					
							
		// フレームのサイズを設定					
		J.setSize(1000, 500);					
		J.setVisible(true);					
	}						
}							

SwingプログラミングPOINT

①フレームの宣言(タイトルがLabel Test):JFrame J = new JFrame("Label TEST"); ② ウィンドウをクローズ: J.setDefaultCloseOperation(J.EXIT_ON_CLOSE); ③フレームのコンテナを得る:Container C = J.getContentPane(); ④ラベルを作る:JLabel L = new JLabel("ラベルです。"); ⑤文字列つきボタンを作る:JButton B = new JButton("P U S h"); ⑥テキストエリアを作る:JTextArea T=new JTextArea("これがTextです。\n",3,20); ⑦配置する。:L.setBounds(300, 100, 100, 100);

(3)レイアウト javaでは配置にレイアウトマネージャーが用意されており、9種類の配置方法があります。 パッケージ クラス java.awt  FlowLayout  GridLayout  BorderLayout  CardLayout  GridBagLayout javax.swing  BoxLayout  OverlayLayout  ScrollPaneLayout  ViewPortLayout フィールド名 整列方法 LEFT    各行のGUIコンポーネントを左揃えにする CENTER  各行のGUIコンポーネントを中央揃えにする RIGHT  各行のGUIコンポーネントを右揃えにする LEADING  各行のGUIコンポーネントをコンテナの方向のリーディングエッジに備える TRAILING  各行のGUIコンポーネントをコンテナの方向のトレイリングエッジに揃える ①フローレイアウト
package sample007;					
import java.awt.Container;					
import java.awt.FlowLayout;								
import javax.swing.JButton;					
import javax.swing.JFrame;					
					
public class SwingLayout {					
					
	public static void main(String[] args) {				
		// TODO 自動生成されたメソッド・スタブ			
		JFrame f = new JFrame("FlowLayout1");			
		f.setDefaultCloseOperation(f.EXIT_ON_CLOSE);			
		Container c = f.getContentPane();			
		// レイアウトマネージャのインスタンスを作る			
		FlowLayout f1 = new FlowLayout(FlowLayout.CENTER,15,15);			
		// レイアウトを設定			
		c.setLayout(f1);			
					
		// ボタンを作ってコンテンツ区画に追加			
		c.add(new JButton("1"));			
		c.add(new JButton("2"));			
		c.add(new JButton("3"));			
		c.add(new JButton("4"));			
		c.add(new JButton("5"));			
		c.add(new JButton("6"));			
					
		f.pack();			
		f.setVisible(true);			
	}				
					
}
②ボーダーレイアウトとグリッドレイアウトを使用した矢印パネル
package sample008;				
				
import java.awt.BorderLayout;				
import java.awt.GridLayout;				
				
import javax.swing.JButton;				
import javax.swing.JFrame;				
import javax.swing.JLabel;				
import javax.swing.JPanel;				
				
class SwingLayout2 {				
				
	public static void main(String[] args) {			
		// TODO 自動生成されたメソッド・スタブ		
		JFrame f = new JFrame("JFrame");		
				
		JPanel p = new JPanel();		
				
		f.setDefaultCloseOperation(f.EXIT_ON_CLOSE);		
		// レイアウトマネージャのインスタンスを作る		
		GridLayout g1 = new GridLayout(3, 3);		
		// レイアウトを設定		
		p.setLayout(g1);		
				
		// ボタンを作ってコンテンツ区画に追加		
		p.add(new JLabel(""));// ダミー		
		p.add(new JButton("↑"));		
		p.add(new JLabel(""));// ダミー		
		p.add(new JButton("←"));		
		p.add(new JLabel("")); // ダミー		
		p.add(new JButton("→"));		
		p.add(new JLabel("")); // ダミー		
		p.add(new JButton("↓"));		
		p.add(new JLabel("")); // ダミー		
				
		// フレームのコンテンツ区画にボタンを乗せる		
		f.add(new JButton("CANCEL"), BorderLayout.NORTH);		
				
		//フレームのコンテンツ区画(中央)にパネルを載せる		
		f.add(p,BorderLayout.CENTER);		
				
		//フレームのコンテンツ区画(中央)にパネルを載せる		
		f.add(new JButton("O K"), BorderLayout.SOUTH);		
				
		f.pack();		
		f.setVisible(true);		
	}			
				
}				
(4)イベント/イベントソース ①イベントの種類 イベントソース  アクション:イベント ラベル   フォーカスをほかのGUIコンポーネントに移す:FocusEvent   ラベルをクリックする:ActionEvent   マウスで操作する。:MouseEvent ボタン   フォーカスをほかのGUIコンポーネントに移す:FocusEvent   ボタンをクリックする:ActionEvent   マウスで操作する。:MouseEvent テキストフィールド   を押す:ActionEvent   フォーカスをほかのGUIコンポーネントに移す:FocusEvent   インプットメソッドを使ってテキスト入力する:InputMethodEvent   キーボードから入力する。:KeyEvent   マウスで操作する。:MouseEvent   テキストを変更する。:TextEvent テキストエリア   フォーカスをほかのGUIコンポーネントに移す:FocusEvent   インプットメソッドを使ってテキスト入力する:InputMethodEvent   キーボードから入力する。:KeyEvent   マウスで操作する。:MouseEvent   テキストを変更する。:TextEvent
イベントイベントリスナー
ActionEventActionListener
FoucusEventFocusListener
InputMethodEventInputMethodListener
KeyEventKeyListener
MouseEventMouseListener
MouseEventMouseMotionListener
TextEventTextListener
②イベント処理メソッド
イベントリスナーイベント処理メソッドイベントタイプアクション
ActionListeneractionPerformedACTION_PERFORMEDボタン、ラベルがクリックされた
FocusListener focusGained FOCUS_GAINED フォーカスを得た
FocusListener focusLost FOCUS_LOST フォーカスを失った
InputMethodListener caretPositionChangedCARET_POSITION_CHANGED キャレットの位置が変わった
InputMethodListener inputMethodTextChanged INPUT_METHOD_TEXT_CHANGEDインプットメソッドテキストが変更された
KeyListener keyPressed KEY_PRESSED キーが押された
KeyListener keyReleased KEY_RELEASED キーが話された
KeyListener keyTyped KEY_TYPED キーがタイプされた
MouseListener mouseClicked MOUSE_CLICKED マウスボタンがクリックされた
MouseListener mouseEntered MOUSE_ENTERED マウスカーソンが乗った
MouseListener mouseExited MOUSE_EXITED マウスカーソルが出た
MouseListener mousePressed MOUSE_PRESSED マウスボタンが押された
MouseListener mouseReleased MOUSE_RELEASED マウスボタンが離された
MouseMotionListener mouseDragged MOUSE_DRAGGED マウスがドラッグされた
MouseMotionListener mouseMoved MOUSE_MOVED マウスカーソルが移動
TextListener textValueChanged TEXT_VALUE_CHANGED テキストが変更された
      
package sample009;							
							
import java.awt.Container;							
							
import javax.swing.JButton;							
import javax.swing.JFrame;							
							
public class ButtonEvent {							
							
	public static void main(String[] args) {						
		// TODO 自動生成されたメソッド・スタブ					
		JFrame f = new JFrame("buttonEvent1");					
		f.setDefaultCloseOperation(f.EXIT_ON_CLOSE);					
		Container c = f.getContentPane();					
		JButton b = new JButton("C l i c k");					
		// イベントリスナーのインスタンスを作る					
		myListener1 ml = new myListener1();					
							
		// ボタンにイベントリスナーを登録する					
		b.addActionListener(ml);					
							
		c.add(b);					
		f.pack();					
		f.setVisible(true);					
	}						
}							
package sample009;					
					
import java.awt.event.ActionEvent;					
import java.awt.event.ActionListener;					
					
class myListener1 implements ActionListener {					
	// イベント処理メソッドの定義 イベントリスナーインタフェースの抽象メソッドをオーバーライド				
	public void actionPerformed(ActionEvent a) {				
		System.out.println("ボタンがクリックされました");			
	}				
}