swingコンポーネント->Border
ボーダーはコンポーネントの周囲に描画される境界線のことです。
直線、斜影、飾り縁など様々なボーダーがあります。コンポーネントはボーダーをひとつだけ保持できるが、ボーダーをネストさせることにより、複数のボーダーを付加できます。


コンポーネントに境界線をつけるには
@new演算子を使って、ボーダークラスのコンストラクタからオブジェクトを生成
   BevelBorder bevel = new BevelBorder(BevelBorder.RAISED);
ABorderFactoryクラスのクラスメソッドを使う。
 BorderFactoryクラスは標準的な境界線を生成するためのクラスです。
    BorderFactory.createRaisedBevelBorder(); など

SampleBorder.java
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import javax.swing.border.*;
public class SampleBorder extends JFrame{
 Container contentPane;
 String str[] = {"BevelBorder RAISED","BevelBorder LOWERED","CompoundBorder",
         "EtchedBorder RAISED","EtchedBorder LOWERED","LineBorder","MatteBorder",
         " SoftBevelBorder RAISED"," SoftBevelBorder LOWERED","TitledBorder"};
 JButton btn[] = new JButton[str.length];
 public SampleBorder() {
  super("SampleBorder");
  addWindowListener(new WindowAdapter() {
   public void windowClosing(WindowEvent e) {
    System.exit(0);
   }
  });
  contentPane = getContentPane();
  contentPane.setLayout(new GridLayout(5,2));
  for(int i=0; i<str.length; i++){
   btn[i] = new JButton(str[i]);
   contentPane.add(btn[i]);
  }
  btn[0].setBorder(BorderFactory.createRaisedBevelBorder());
  btn[1].setBorder(BorderFactory.createLoweredBevelBorder());
  btn[2].setBorder(BorderFactory.createCompoundBorder
                  (BorderFactory.createLineBorder(Color.blue,4),
        BorderFactory.createEtchedBorder(BevelBorder.RAISED,Color.green,Color.gray)));
  btn[3].setBorder(new EtchedBorder(BevelBorder.RAISED,
               getBackground().darker(),getBackground().brighter()));
  btn[4].setBorder(new EtchedBorder(BevelBorder.LOWERED,
               getBackground().darker(),getBackground().brighter()));
  btn[5].setBorder(BorderFactory.createLineBorder(Color.red));
  btn[6].setBorder(new MatteBorder(new ImageIcon("fmini_walk.gif")));
  btn[7].setBorder(new SoftBevelBorder(BevelBorder.RAISED));
  btn[8].setBorder(new SoftBevelBorder(BevelBorder.LOWERED));
  btn[9].setBorder(BorderFactory.createTitledBorder(str[9]));
  setSize(490,500);
  setVisible(true);
 }
 static public void main(String[] args) {
  new SampleBorder();
 }
}
もどる