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); } } |