GUI Creation and positioning of GUI components java

  • Slides: 12
Download presentation
GUIコンポーネントの設定と配置 Creation and positioning of GUI components • • • java. awt 継承階層 Inheritance

GUIコンポーネントの設定と配置 Creation and positioning of GUI components • • • java. awt 継承階層 Inheritance hierarchy コンポーネント Component コンポーネントレイアウト Layout パネル Panel フレーム Frame

java. awt継承階層 (abstract window toolkit) Hierarchy Text. Field java. lang. Object Text. Component Checkbox.

java. awt継承階層 (abstract window toolkit) Hierarchy Text. Field java. lang. Object Text. Component Checkbox. Group Component例 java. lang. Object | Text. Area Button +--java. awt. Component | +--java. awt. Label Container Panel List Window Java. applet. Applet Flow. Layout Frame Border. Layout Choice Grid. Layout 三種類のレイアウト Checkbox GUI Components 次に説明します

コンポーネント:ラベル Label ラベル: 編集不能なテキストを表示する部品。 読み出し専用テキストを一行だけ表示する。 コンストラクタとメソッド 使い方 public Label() public Label(String s, int alignment)

コンポーネント:ラベル Label ラベル: 編集不能なテキストを表示する部品。 読み出し専用テキストを一行だけ表示する。 コンストラクタとメソッド 使い方 public Label() public Label(String s, int alignment) private Label label; public String get. Text() public void set. Text(String s) public void set. Alignment(int alignment) //label = new Label(“Label demo”); 例のソース label = new Label(); label. set. Text(“Label demo”); label. set. Alignment(Label. CENTER); //label = new Label(“Label demo”, Label. CENTER); add(label); String s は ラベルのテキスト int alignment は表示位置: Label. LEFT Label. CENTER Label. RIGHT …… g. draw. String(“text is: ” + label. get. Text(), 20, 30); Containerから継承したadd()メソッドを 使って(add(label); )、labelをアプレット に追加します。

ボタン:押しボタン、選択ボタン Button, Choice, Checkbox ボタンはクリックして特定のアクションを選択するためのGUIコンポーネントです。 Javaでは、押しボタン、選択ボタン、チェックボックスの3種類がつかえます。 コンストラクタとメソッド 使い方 例のソース private Button button; public Button(String

ボタン:押しボタン、選択ボタン Button, Choice, Checkbox ボタンはクリックして特定のアクションを選択するためのGUIコンポーネントです。 Javaでは、押しボタン、選択ボタン、チェックボックスの3種類がつかえます。 コンストラクタとメソッド 使い方 例のソース private Button button; public Button(String s) button = new Button("addition"); public Choice() // button. add. Action. Listener(this); public String get. Item(int index) public synchronized void add(String s) public synchronized String get. Selected. Item() public int get. Selected. Index() public synchronized void insert(String s, int index) public synchronized void remove(String s) 指定インデック スに新しい項 目を追加する 指定した項目を 選択ボタンに追 加する add(button); private Choice choice; choice = new Choice(); choice. add("English"); choice. add(“日本語”); //choice. add. Item. Listener(this); add(choice); choice. insert(“中国語”, 1);

ボタン: チェックボックス、ラジオボタン Checkbox, Checkbox + Checkbox. Group チェックボックスとラジオボタンはクラスCheckboxから作ります。 使い方 コンストラクタとメソッド public Checkbox(String s) public

ボタン: チェックボックス、ラジオボタン Checkbox, Checkbox + Checkbox. Group チェックボックスとラジオボタンはクラスCheckboxから作ります。 使い方 コンストラクタとメソッド public Checkbox(String s) public Checkbox. Group() //Checkbox. Groupオブジェクトを生成する ソース Demo private Checkbox font. Bold; font. Bold = new Checkbox("Bold"); //font. Bold. add. Item. Listener(this); add(font. Bold); public Checkbox( String s, //ラジオボタンのラベル Checkbox. Group c, boolean state) //ラジオボタンの状態 指定されたラベルと状態を持ちラジ オボタンを一つ生成して、既存の Checkbox. Group cに追加する private Checkbox fontcolor; private Checkbox. Group fontcolor; fontcolor = new Checkbox. Group(); color. Red = new Checkbox("red", fontcolor, true); //color. Red. add. Item. Listener(this); add(color. Red); 1組のラジオボタンは、1個のCheckbox. Groupオブジ ェクトおよび複数個のCheckboxオブジェクトから構成 されますが、同時には1個ボタンしか選べません。 ……

コンポーネント:選択リスト List リスト: 選択項目のリストの中から1項目をクルックして選べる部品。 1項目しか選択できないものを単一選択リスト、複数の項目 を同時に選択できるものを多重選択リストと呼びます。 Demo ソース 使い方 コンストラクタとメソッド private List colorlist; public

コンポーネント:選択リスト List リスト: 選択項目のリストの中から1項目をクルックして選べる部品。 1項目しか選択できないものを単一選択リスト、複数の項目 を同時に選択できるものを多重選択リストと呼びます。 Demo ソース 使い方 コンストラクタとメソッド private List colorlist; public List(int item, boolean b) colorlist = new List(3, false); //単一選択リスト public String get. Item(int index) public synchronized void add(String s) public synchronized String get. Selected. Item() public int get. Selected. Index() public synchronized void remove(String s) //true 多重選択リスト //colorlist. add. Action. Listener(this); //colorlist. add. Item. Listener(this); colorlist. add("red"); colorlist. add("green"); ComponentクラスにはChoiceやList で共通に使えるメソッドがいくつか 定義されています。 colorlist. add("blue"); 指定した項目を 選択リストに追 加する add(colorlist); colorlist. remove(“green”); 選択リストから 指定した項目 を削除する

コンポーネント:テキストエリア Text. Area:複数行のテキストを操作(入力、編集、表示) することができます。 コンストラクタとメソッド 使い方 public Text. Area() public Text. Area(int rows, int

コンポーネント:テキストエリア Text. Area:複数行のテキストを操作(入力、編集、表示) することができます。 コンストラクタとメソッド 使い方 public Text. Area() public Text. Area(int rows, int columns) public Text. Area(String s, int rows, int columns) public Text. Area( String s, int rows, int columns, int scrollbar) private Text. Area area; public void set. Editable(boolean b) add(area); Text. Fieldと違う: Text. Fieldは一行のテキスト( データ)を操作しますが、 Text. Areaは複数行のテキス トを操作します。 この二行は以下の一行 Demo ソース area = new Text. Area("Hello!", 10, 40); //area = new Text. Area(10, 40); //area. set. Text(“Hello!”); //area. add. Text. Listener(this); area. set. Editable(false); false – 編集不可 true – 編集可 area. append("This is a demo. " +"n"); area = new Text. Area(“Hello!”, 10, 40); と同じです。 指定したテキストを テキストエリアに追 加します “n” は改行です

レイアウトマネージャ Layout Manager Flow. Layout ソース Demo GUIコンポーネントが」コンテナに追加された順 に左から右に配置します add(label); public Flow. Layout() ……

レイアウトマネージャ Layout Manager Flow. Layout ソース Demo GUIコンポーネントが」コンテナに追加された順 に左から右に配置します add(label); public Flow. Layout() …… public Flow. Layout(int p) public Flow. Layout( int p, int h, int v) Border. Layout ソース Demo コンポーネントを5つの区域(N, S, E, W, C)に分け て配置します。 set. Layout(new Border. Layout(5, 5)); add(label, Border. Layout. WEST); add(text. Field, Border. Layout. CENTER); add(colorlist, Border. Layout. NORTH); public Border. Layout(int h, int v) ソース add(area); add(button, Border. Layout. EAST); public Border. Layout() Grid. Layout set. Layout(new Flow. Layout(Flow. Layou. RIGHT)); add(area, Border. Layout. SOUTH); Demo 格子(行と列)に沿ってコンポーネントを配置し ます。 public Grid. Layout() public Grid. Layout(int r, int c, int h, int v) set. Layout(new Grid. Layout(3, 4, 2, 2)); add(button); …… add(area);

パネル Panel 必要性:ために、Flow. Lauout()とかBorder. Layout()とか Grid. Layout()とかどれだけでも、各コンポーネントを正確な位 置に配置することが難しいから、異なる復数のパネルを使う。 Container クラス=> Panelクラス => Appletクラス Panel(オブジェクト)を利用し

パネル Panel 必要性:ために、Flow. Lauout()とかBorder. Layout()とか Grid. Layout()とかどれだけでも、各コンポーネントを正確な位 置に配置することが難しいから、異なる復数のパネルを使う。 Container クラス=> Panelクラス => Appletクラス Panel(オブジェクト)を利用し てコンポーネントをより複雑 にはいちすることができます。 private Panel panel 1, panel 2; panel 1 = new Panel(); panel 1. set. Layout(new Border. Layout(5, 5)); …… public Panel() panel 1. add(button, Border. Layout. NORTH); …… panel 2 = new Panel(); ソース Demo panel 2. set. Layout(new Grid. Layout(1, 5, 2, 2)); …… panel 2. add(colorlist); ……