| Java Step_8 GUIコンポーネント(2) |
| テキスト |
//テキストフィールドを表示するプログラム
import javax.swing.*;
import java.awt.*;
class Field{
public static void main(String args[]){
JFrame f = new JFrame("Field");
f.setDefaultCloseOperation(f.EXIT_ON_CLOSE);
Container c = f.getContentPane();
//テキストフィールドを作る
JTextField tf = new JTextField("テキストフィールドです。必要最小限のフレームで表示しています。");
c.add(tf);
//フレームを必要最小限のサイズにする
f.pack();
f.setVisible(true);
}
}
|
| テキストエリア |
//テキストエリアを表示するプログラム
import javax.swing.*;
import java.awt.*;
class Area{
public static void main(String args[]){
JFrame f = new JFrame("Area");
f.setDefaultCloseOperation(f.EXIT_ON_CLOSE);
Container c = f.getContentPane();
//テキストエリアを作る
JTextArea ta = new JTextArea("Text のうち「Area」は挿入です。\n",3,20);
ta.append("ここは追加の行です");
ta.insert("Area",5);
c.add(ta);
f.setSize(300,100);
f.setVisible(true);
}
}
|
| フローレイアウト |
import javax.swing.*;
import java.awt.*;
class Flow1{
public static void main(String args[]){
JFrame f = new JFrame("FlowLayout1");
f.setDefaultCloseOperation(f.EXIT_ON_CLOSE);
Container c = f.getContentPane();
//レイアウトマネージャーのインスタンスを作る
FlowLayout f1 = new FlowLayout();
//レイアウトを設定
c.setLayout(f1);
//ボタンを6個作ってコンテンツ区画に追加する
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);
}
}
|
//フローレイアウトのサンプルプログラム
import javax.swing.*;
import java.awt.*;
class Flow2{
public static void main(String args[]){
JFrame f = new JFrame("FlowLayout1");
f.setDefaultCloseOperation(f.EXIT_ON_CLOSE);
Container c = f.getContentPane();
//レイアウトマネージャーのインスタンス
//右詰、水平間隔5、垂直間隔10ピクセル
FlowLayout f1 = new FlowLayout(FlowLayout.RIGHT,5,10);
c.setLayout(f1);
c.add(new JButton("1"));
c.add(new JButton("2"));
c.add(new JButton("3"));
//追加する場所を直接使用する(先頭は0)
c.add(new JButton("4"),0);
c.add(new JButton("5"),2);
c.add(new JButton("6"),4);
f.pack();
f.setVisible(true);
}
}
|
| フィールド名 | 整列方法 |
| LEFT | 左揃え |
| CENTER | 中央揃え |
| RIGHT | 右揃え |
| LEADING | 行頭揃え(通常は左揃えと同じ)る |
| TRAINING | 行末揃え(通常は右揃えと同じ) |
| グリッドレイアウト |
| GridLayout() | 1 行中にコンポーネントあたり 1 つの列を持つデフォルト指定でグリッドレイアウトを作成します。 |
| GridLayout(rows, cols) | 指定された行数と列数を持つグリッドレイアウトを作成します。 | GridLayout(rows, cols, hgap, vgap) | 指定された数の行と列を持つグリッドレイアウトを作成します。 |
//グリッドレイアウトのサンプルプログラム
import javax.swing.*;
import java.awt.*;
class Grid1{
public static void main(String args[]){
JFrame f = new JFrame("GridLayout1");
f.setDefaultCloseOperation(f.EXIT_ON_CLOSE);
Container c = f.getContentPane();
//レイアウトマネージャーのインスタンス
//
GridLayout g1 = new GridLayout(0,4,10,20);
c.setLayout(g1);
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);
}
}
|
| ボーダーレイアウト |
| BorderLayout() | コンポーネント間に間隔を設けずに、新しいボーダレイアウトを構築します。 |
| BorderLayout(int hgap, int vgap) | コンポーネント間に間隔を指定して、新しいボーダレイアウトを構築します。 hgapとvgapは、縦と横の間隔。指定しなかった場合は、隙間のないレイアウトになります |
//ボーダーレイアウトのサンプルプログラム
import javax.swing.*;
import java.awt.*;
class Border1{
public static void main(String args[]){
JFrame f = new JFrame("BorderLayout1");
f.setDefaultCloseOperation(f.EXIT_ON_CLOSE);
Container c = f.getContentPane();
//ボーダーレイアウトマネージャーのインスタンスを作る
BorderLayout b1 = new BorderLayout();
c.setLayout(b1);
// 第2引数で配置場所を指定
c.add(new JButton("北"),BorderLayout.NORTH);
c.add(new JButton("東"),BorderLayout.EAST);
c.add(new JButton("中央"),BorderLayout.CENTER);
c.add(new JButton("西"),BorderLayout.WEST);
c.add(new JButton("南"),BorderLayout.SOUTH);
f.pack();
f.setVisible(true);
}
}
|
| 自分で配置する |
//自分で配置するサンプルプログラム
import javax.swing.*;
import java.awt.*;
class Free{
public static void main(String args[]){
JFrame f = new JFrame("FreeLayout");
f.setDefaultCloseOperation(f.EXIT_ON_CLOSE);
Container c = f.getContentPane();
//レイアウトマネージャーを使わない設定
c.setLayout(null);
JButton b1 = new JButton("Button1");
JButton b2 = new JButton("Button2");
JButton b3 = new JButton("Button3");
c.add(b1);
c.add(b2);
c.add(b3);
//個別に座標を指定
b1.setBounds(0,0,100,50);
b2.setBounds(100,50,100,50);
b3.setBounds(200,100,100,50);
f.setSize(310,180);
f.setVisible(true);
}
}
|
| パネルを使う |
//パネルを使ったレイアウトのサンプルプログラム
import javax.swing.*;
import java.awt.*;
class PanelSample{
public static void main(String args[]){
JFrame f = new JFrame("PanelSample");
f.setDefaultCloseOperation(f.EXIT_ON_CLOSE);
Container fc = f.getContentPane();
//パネルを作る
JPanel p = new JPanel();
//パネルのグリッドレイアウト
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("↓"));
//フレームの区画(北)にボタンを配置する
fc.add(new JButton("CANCEL"),BorderLayout.NORTH);
//フレームの区画(中央)にパネルを配置する
fc.add(p,BorderLayout.CENTER);
//フレームの区画(南)にボタンを配置する
fc.add(new JButton("O K"),BorderLayout.SOUTH);
f.pack();
f.setVisible(true);
}
}
|