目次> 第3章> 3.3 | TOPUPPREVNEXT |
前節では、全てのラベルが同じ大きさでしたが、 ここでは、FlowLayout と GridLayout を組合わせて、 もう少しバランスのよい表示をしてみましょう。
001:// 住所・氏名・所属 の表示(その2)
002:
003:import java.awt.* ;
004:import javax.swing.* ;
005:
006:public class MyProfile2 extends JFrame {
007:
008: public MyProfile2() {
009: super("My Profile");
010: setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
011: Container pane = getContentPane();
012: pane.setLayout( new GridLayout(3, 1) );
013:
014: JPanel pan1 = new JPanel(new FlowLayout(FlowLayout.LEFT));
015: pan1.add( new JLabel("氏名:") );
016: pan1.add( new JLabel("藤村 光") );
017: pane.add( pan1 );
018:
019: JPanel pan2 = new JPanel(new FlowLayout(FlowLayout.LEFT));
020: pan2.add( new JLabel("住所:") );
021: JPanel pan3 = new JPanel();
022: pan3.setLayout( new GridLayout(2, 1) );
023: pan3.add( new JLabel("相模原市御園") );
024: pan3.add( new JLabel("4丁目6−8") );
025: pan2.add( pan3 );
026: pane.add( pan2 );
027:
028: JPanel pan4 = new JPanel(new FlowLayout(FlowLayout.LEFT));
029: pan4.add( new JLabel("所属:") );
030: pan4.add( new JLabel("情報処理教育室") );
031: pane.add( pan4 );
032:
033: pack();
034: setVisible(true);
035: }
036:
037: public static void main(String[] args) {
038: new MyProfile2();
039: }
040:}
いくつかのラベルをまとめて貼りつけるために、JPanel を使います。 中間的に JPanel に貼りつけ形を整えたものを さらに大きなパネルや、フレームに貼りつけるという方法を採用しました。
実行結果は、下図のとおりです。
パネルのネストの状況は、下図のとおりです。
pane GridLayout(3, 1) pan1 FlowLayout(FlowLayout.LEFT) pan2 FlowLayout(FlowLayout.LEFT) pan3 GridLayout(2, 1) pan4 FlowLayout(FlowLayout.LEFT)
更新日:2006/04/04 | TOPUPPREVNEXT |