EmptyBorder

広告

ここではEmptyBorderの使い方について見ていきます。EmptyBorderは枠が無いBorderクラスです。

まずEmptyBorderのクラス図を見て下さい。

  • java.lang.Object
  • javax.swing.border.AbstractBorder
  • javax.swing.border.EmptyBorder
  • public class EmptyBorder extends AbstractBorder implements Serializable

見た目は下記の右のボタンのような感じです。

EmptyBorder

コンストラクタ

EmptyBorderではコンストラクタは2つ用意されています。

コンストラクタ
EmptyBorder(Insets borderInsets)
指定された insets の値を持つ、空のボーダを作成します。
EmptyBorder(int top, int left, int bottom, int right)
指定された insets の値を持つ、空のボーダを作成します。

コンストラクタは2つありますが、枠のサイズの指定方法が違うだけです。2番目のコンストラクタを見てみましょう。

指定された insets の値を持つ、空のボーダを作成します。 

パラメータ:
  top - ボーダの上インセット
  left - ボーダの左インセット
  bottom - ボーダの下インセット
  right - ボーダの右インセット

上下左右の枠の大きさを指定して枠を作成します。実際の記述方法は下記のようになります。

JButton btn = new JButton("Test");

Border border = new EmptyBorder( 2, 2, 2, 2);
btn.setBorder(border);

サンプル

では実際に試してみましょう。

import javax.swing.*;
import java.awt.event.*;
import java.awt.Color;
import javax.swing.border.*;
import java.awt.Dimension;

public class SwingTest extends JFrame{
  public static void main(String[] args){
    SwingTest test = new SwingTest("SwingTest");

    test.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    test.setVisible(true);
  }

  SwingTest(String title){
    setTitle(title);
    setBounds( 10, 10, 300, 200);

    JPanel p = new JPanel();

    JButton btn1 = new JButton("Tennis");
    btn1.setPreferredSize(new Dimension(100,100));

    JButton btn2 = new JButton("Golf");
    btn2.setPreferredSize(new Dimension(100,100));
    btn2.setBorder(new EmptyBorder( 2, 2, 2, 2));

    p.add(btn1);
    p.add(btn2);

    getContentPane().add(p);
  }
}

実行結果は下記のようになります。

EmptyBorder

左がデフォルトの状態で、右がEmptyBorderを指定した場合です。

( Written by Tatsuo Ikura )