CompoundBorder
ここではCompoundBorderの使い方について見ていきます。CompoundBorderは複合型のボーダーです。2つのボーダーを組み合わせて、新しいボーダーを作成します。
まずCompoundBorderのクラス図を見て下さい。
java.lang.Object javax.swing.border.AbstractBorder javax.swing.border.CompoundBorder public class CompoundBorder extends AbstractBorder
見た目は下記のようになります。
コンストラクタ
CompoundBorderではコンストラクタは2つ用意されています。
コンストラクタ |
---|
CompoundBorder() 外側ボーダ、内側ボーダがともに null の複合ボーダを作成します。 |
CompoundBorder(Border outsideBorder, Border insideBorder) 指定された内側ボーダおよび外側ボーダによる複合ボーダを作成します。 |
コンストラクタは2つありますが、2番目のコンストラクタを見てみましょう。
public CompoundBorder(Border outsideBorder, Border insideBorder)
指定された内側ボーダおよび外側ボーダによる複合ボーダを作成します。内側 、外側のどちらも、null にしてもかまいません。 パラメータ: outsideBorder - 外側ボーダ insideBorder - 入れ子にする内側ボーダ
今まで出てきたBorderクラスを外側及び内側に設定します。こうすることで、2つのBorderを組み合わせて設定が可能です。またCompoundBorder自体を引数としても指定できるので、どんどん組み込んでいくことで、2つ以上のBorderを組み合わせることも可能です。
実際の記述方法は下記のようになります。
LineBorder outsideBorder = new LineBorder(Color.red, 2); EtchedBorder insideBorder = new EtchedBorder(EtchedBorder.RAISED); CompoundBorder border = new CompoundBorder(outsideBorder, insideBorder); JButton btn = new JButton("Tennis"); btn.setPreferredSize(new Dimension(100,100)); btn.setBorder(border);
この場合はLineBorderとEtchedBorderを組み合わせています。
サンプル
では実際に試してみましょう。
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(); LineBorder outsideBorder1 = new LineBorder(Color.red, 2); EtchedBorder insideBorder1 = new EtchedBorder(EtchedBorder.RAISED); CompoundBorder border1 = new CompoundBorder(outsideBorder1, insideBorder1); JButton btn1 = new JButton("Tennis"); btn1.setPreferredSize(new Dimension(100,100)); btn1.setBorder(border1); LineBorder outsideBorder2 = new LineBorder(Color.black, 3); LineBorder insideBorder2 = new LineBorder(Color.pink, 3); CompoundBorder border2 = new CompoundBorder(outsideBorder2, insideBorder2); LineBorder insideBorder3 = new LineBorder(Color.yellow, 3); CompoundBorder border3 = new CompoundBorder(border2, insideBorder3); JButton btn2 = new JButton("Golf"); btn2.setPreferredSize(new Dimension(100,100)); btn2.setBorder(border3); p.add(btn1); p.add(btn2); getContentPane().add(p); } }
実行結果は下記のようになります。
( Written by Tatsuo Ikura )
著者 / TATSUO IKURA
これから IT 関連の知識を学ばれる方を対象に、色々な言語でのプログラミング方法や関連する技術、開発環境構築などに関する解説サイトを運営しています。