トリッキーコードネット トップへ戻る   C/C++, Java, Perl, PHP, JavaScript, アルゴリズム, ショートコーディング, IOCCCコードの解説, 等々

サイト情報

トリッキーなコード

7行プログラミング

物凄いコード集

アルゴリズム

データ構造

C/C++な話題

コードサンプル

ツール/環境構築

開発ノウハウ 等

ネタ/ジョーク集

おススメ書籍/サイト

サイトTOP >> コードサンプル >> GridLayout, Inset, GridBagLayoutについて ※管理人のメモ用ページです。

GridLayout, Inset, GridBagLayout について

Containerの上にPanelを配置。
Panelの上に様々なアイテムを配置する。

GridLayout, Insets

マス目内に自動的にコンポーネントを配置。 作成されるコンポーネントのサイズは全て等しい。 GridLayout GridLayout() GridLayout(int rows, int cols); // rows, cols : グリッド内の行数,列数 GridLayout(int rows, int cols, int hgap, int vgap); // hgap, vgap : コンポーネント間の水平,垂直間隔(px) Insets Insets(int top, int left, int bottom, int right); コンテナ周りのマージンをpx単位で設定
import java.applet.*;
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import javax.swing.border.*; //for BevelBorder

public class GridLayoutDemo extends JApplet
{

    JTextField[][] jtf = new JTextField[9][9];

    public void init(){
        int x,y,i;

        //RAISED : 浮き出る, LOWERED:窪む (色は別に指定する必要はない)
        BevelBorder border = new BevelBorder(BevelBorder.LOWERED,Color.green,Color.blue);

        Container ctn = getContentPane();
        ctn.setLayout(new GridLayout(4,3));

        for (y=0; y<3; y++){
            for (x=0; x<3; x++){

                JPanel p = new JPanel();
                p.setLayout(new GridLayout(3,3,10,0));

                 for (i=0; i<9; i++){
                     jtf[y*2+x][i] = new JTextField("",1);
                     jtf[y*2+x][i].setHorizontalAlignment(JTextField.CENTER);

                    p.add(jtf[y*2+x][i]);
                 }

                 p.setBorder(border);
                 ctn.add(p);

             }
         }
    }

    public Insets getInsets(){
        return new Insets(10,20,30,40);
    }

    public void paint(Graphics g) {
    }
}
結果:

GridBagLayout

import java.applet.*;
//import java.awt.*;
import java.awt.Graphics;
import java.awt.BorderLayout;
import java.awt.GridBagConstraints;
import java.awt.GridBagLayout;
import java.awt.Container;
import java.awt.Color;
import java.awt.event.*;

import javax.swing.*;
import javax.swing.border.*; // for BevelBorder

public class GridBagLayoutDemo extends JApplet
    implements ActionListener
{
    JLabel jlabel = new JLabel("---");

    public void init(){

        //各パネルの枠:RAISED : 浮き出る, LOWERED:窪む (色は別に指定する必要はない)
        BevelBorder border = new BevelBorder(BevelBorder.LOWERED,Color.green,Color.blue);

        Container ctn = getContentPane();
        GridBagLayout layout = new GridBagLayout();
        GridBagConstraints constraints = new GridBagConstraints();

        ctn.setLayout(layout);


        //1つ目のパネル
        JPanel panel = new JPanel();
        JButton jb = new JButton("TEST1");
        jb.addActionListener(this);
        panel.add(jb);
        panel.setBorder(border);

        constraints.gridx      = 0;
        constraints.gridy      = 0;
        constraints.gridwidth  = 2;
        constraints.gridheight = 1;
        //constraints.weightx    = 500.0;

        layout.setConstraints(panel, constraints);
        ctn.add(panel);


         //2つ目のパネル
         panel = new JPanel();
         jb = new JButton("TEST2");
         jb.addActionListener(this);
        panel.add(jb);
        panel.setBorder(border);

         constraints.gridx      = 2;
        constraints.gridy      = 0;
         constraints.gridwidth  = 1;
        constraints.gridheight = 1;

        layout.setConstraints(panel, constraints);
        ctn.add(panel);


        //右横のパネル
        panel = new JPanel();
        jb = new JButton("TEST!");
        jb.addActionListener(this);
        panel.add(jb);
        panel.setBorder(border);

        constraints.gridx      = 3;
        constraints.gridy      = 0;
        constraints.gridwidth  = 1;
        constraints.gridheight = GridBagConstraints.REMAINDER; //限界まで

        layout.setConstraints(panel, constraints);
        ctn.add(panel);


        //3つ目のパネル
         panel = new JPanel();
         jb = new JButton("TEST3");
         jb.addActionListener(this);
        panel.add(jb);
        panel.setBorder(border);

         constraints.gridx      = 0;
        constraints.gridy      = 1;
         constraints.gridwidth  = 1;
        constraints.gridheight = 1;

        layout.setConstraints(panel, constraints);
        ctn.add(panel);


        //4つ目のパネル
         panel = new JPanel();
         jb = new JButton("TEST4");
         jb.addActionListener(this);
        panel.add(jb);
        panel.setBorder(border);

         constraints.gridx      = 1;
        constraints.gridy      = 1;
         constraints.gridwidth  = 1;
        constraints.gridheight = 1;

        layout.setConstraints(panel, constraints);
        ctn.add(panel);


        //5つ目のパネル
         panel = new JPanel();
         jb = new JButton("TEST5");
         jb.addActionListener(this);
        panel.add(jb);
        panel.setBorder(border);

         constraints.gridx      = 2;
        constraints.gridy      = 1;
         constraints.gridwidth  = 1;
        constraints.gridheight = 1;

        layout.setConstraints(panel, constraints);
        ctn.add(panel);


        //1番下のラベル
         panel = new JPanel();
        panel.add(jlabel);
        panel.setBorder(border);

         constraints.gridx      = 0;
        constraints.gridy      = 3;
         constraints.gridwidth  = 0;
        constraints.gridheight = GridBagConstraints.REMAINDER; //限界まで

        layout.setConstraints(panel, constraints);
        ctn.add(panel);

    }

    public void actionPerformed(ActionEvent event) {
        jlabel.setText(event.getActionCommand());
    }

    public void paint(Graphics g) {
    }
}
結果:
         このエントリーをはてなブックマークに追加   


作業効率化・ライフハックのオススメ記事




コンピュータ・テクノロジーのオススメ記事





恋愛・人間関係のオススメ記事




※ 当サイトは、トップページからリンクで辿る事の出来るページに限り、リンクフリーです。
※ 当サイトの閲覧/利用によって生じた如何なる損害も、当サイト管理人は責任を負いません。
※ 当サイトの内容を転載される場合は、当サイトへのリンクをお願い致します。