(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);
}
}
①フレームの宣言(タイトルが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 | ActionListener |
| FoucusEvent | FocusListener |
| InputMethodEvent | InputMethodListener |
| KeyEvent | KeyListener |
| MouseEvent | MouseListener |
| MouseEvent | MouseMotionListener |
| TextEvent | TextListener |
| イベントリスナー | イベント処理メソッド | イベントタイプ | アクション |
| ActionListener | actionPerformed | ACTION_PERFORMED | ボタン、ラベルがクリックされた |
| FocusListener | focusGained | FOCUS_GAINED | フォーカスを得た |
| FocusListener | focusLost | FOCUS_LOST | フォーカスを失った |
| InputMethodListener | caretPositionChanged | CARET_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("ボタンがクリックされました");
}
}