BevelBorder/SoftBevelBorder
ここではBevelBorder/SoftBevelBorderの使い方について見ていきます。BevelBorderは立体的に浮いて見えたり沈んで見えたりするBorderクラスです。BevelBorderとSoftBevelBorderは見た目がちょっと違うだけで基本的には同じものです。
まずBevelBorderのクラス図を見て下さい。
java.lang.Object javax.swing.border.AbstractBorder javax.swing.border.BevelBorder public class BevelBorder extends AbstractBorder
見た目は下記のようになります。
コンストラクタ
BevelBorderではコンストラクタは3つ用意されています。
コンストラクタ |
---|
BevelBorder(int bevelType) 指定されたタイプの斜影ボーダを作成します。 |
BevelBorder(int bevelType, Color highlight, Color shadow) 斜影ボーダを、指定されたタイプ、ハイライトおよび陰影のカラーで作成します。 |
BevelBorder(int bevelType, Color highlightOuterColor, Color highlightInnerColor, Color shadowOuterColor, Color shadowInnerColor) 斜影ボーダを、指定されたタイプ、ハイライトおよび陰影のカラーで作成します。 |
コンストラクタは3つありますが、タイプと色の指定をどこまでするかの違いです。2番目のコンストラクタを見てみましょう。
public BevelBorder(int bevelType, Color highlight, Color shadow)
斜影ボーダを、指定されたタイプ、ハイライトおよび陰影のカラーで作成します。 パラメータ: bevelType - ボーダの斜影のタイプ highlight - 斜影のハイライトに使うカラー shadow - 斜影の陰影に使うカラー
タイプとは"くぼみ"の形にするか"浮き出し"の形にするかのどちらかを指定します。実際には、下記のどちらかを指定します。
BevelBorder.LOWERED くぼみ斜影 BevelBorder.RAISED 浮き出し斜影
色については、明るい部分の色と暗い部分の色を指定します。通常は色についてはあまり変更しなくてもいいと思いますが、あえて変更したい場合はColorクラスの値を指定して下さい。
実際の記述方法は下記のようになります。
JButton btn = new JButton("Test"); Border border = new BevelBorder(BevelBorder.RAISED, Color.white, Color.black); 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)); btn1.setBorder(new BevelBorder(BevelBorder.LOWERED)); Border border = new BevelBorder(BevelBorder.RAISED, Color.white, Color.black); JButton btn2 = new JButton("Golf"); btn2.setPreferredSize(new Dimension(100,100)); btn2.setBorder(border); p.add(btn1); p.add(btn2); getContentPane().add(p); } }
実行結果は下記のようになります。
左がくぼみ、右が浮き出しで、右については色も指定してみました。色を指定しない場合は最初の書いたサンプル画像を見てください。
SoftBevelBorder
SoftBevelBorderはBevelBorderよりも彫が浅く角がまるいものです。基本的にはBevelBorderとまったくいっしょです。
まずSoftBevelBorderのクラス図を見て下さい。
java.lang.Object javax.swing.border.AbstractBorder javax.swing.border.BevelBorder javax.swing.border.SoftBevelBorder public class SoftBevelBorder extends BevelBorder
SoftBevelBorderクラスはBevelBorderクラスのサブクラスです。
コンストラクタ
SoftBevelBorderではコンストラクタは3つ用意されています。
コンストラクタ |
---|
SoftBevelBorder(int bevelType) 指定されたタイプの斜影ボーダを作成します。 |
SoftBevelBorder(int bevelType, Color highlight, Color shadow) 斜影ボーダを、指定されたタイプ、ハイライトおよび陰影のカラーで作成します。 |
SoftBevelBorder(int bevelType, Color highlightOuterColor, Color highlightInnerColor, Color shadowOuterColor, Color shadowInnerColor) 斜影ボーダを、指定されたタイプ、ハイライトおよび陰影のカラーで作成します。 |
基本的なコンストラクタも、BevelBorderとまったく同じです。早速サンプルで試してみます。
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, 300); JPanel p = new JPanel(); JButton btn1 = new JButton("Tennis"); btn1.setPreferredSize(new Dimension(100,100)); btn1.setBorder(new BevelBorder(BevelBorder.LOWERED)); JButton btn2 = new JButton("Tennis"); btn2.setPreferredSize(new Dimension(100,100)); btn2.setBorder(new SoftBevelBorder(BevelBorder.LOWERED)); JButton btn3 = new JButton("Golf"); btn3.setPreferredSize(new Dimension(100,100)); btn3.setBorder(new BevelBorder(BevelBorder.RAISED)); JButton btn4 = new JButton("Golf"); btn4.setPreferredSize(new Dimension(100,100)); btn4.setBorder(new SoftBevelBorder(BevelBorder.RAISED)); p.add(btn1); p.add(btn2); p.add(btn3); p.add(btn4); getContentPane().add(p); } }
実行結果は下記のようになります。
左側がBevelBorder、右側がSoftBevelBorderを使った場合です。よく見ないと分からないのですが、若干見た目が違っています。
( Written by Tatsuo Ikura )
著者 / TATSUO IKURA
これから IT 関連の知識を学ばれる方を対象に、色々な言語でのプログラミング方法や関連する技術、開発環境構築などに関する解説サイトを運営しています。