EtchedBorder

広告

ここではEtchedBorderの使い方について見ていきます。EtchedBorderは枠の部分だけが立体的に浮いて見えたり沈んで見えたりするBorderクラスです。

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

java.lang.Object
  javax.swing.border.AbstractBorder
    javax.swing.border.EtchedBorder

public class EtchedBorder extends AbstractBorder

見た目は下記のようになります。

EtchedBorder

コンストラクタ

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

コンストラクタ
EtchedBorder()
彫り込みエッチングボーダを作成します。
EtchedBorder(Color highlight, Color shadow)
彫り込みエッチングボーダを、指定されたハイライトおよび陰影のカラーで作成します。
EtchedBorder(int etchType)
指定されたタイプのエッチングボーダを作成します。
EtchedBorder(int etchType, Color highlight, Color shadow)
エッチングボーダを、指定されたタイプ、ハイライトおよび陰影のカラーで作成します。

コンストラクタは4つありますが、タイプと色の指定をどこまでするかの違いです。4番目のコンストラクタを見てみましょう。

public EtchedBorder(int etchType, Color highlight, Color shadow)

エッチングボーダを、指定されたタイプ、ハイライトおよび陰影のカラーで作
成します。 

パラメータ:
  etchType - ボーダが描画するエッチングのタイプ
  highlight - エッチングのハイライトに使うカラー
  shadow - エッチングの陰影に使うカラー

タイプとは"彫り込み"の形にするか"浮き彫り"の形にするかのどちらかを指定します。実際には、下記のどちらかを指定します。

EtchedBorder.LOWERED   彫り込みエッチング
EtchedBorder.RAISED    浮き彫りエッチング

色については、明るい部分の色と暗い部分の色を指定します。変更したい場合はColorクラスの値を指定して下さい。

実際の記述方法は下記のようになります。

JButton btn = new JButton("Test");

EtchedBorder border = new EtchedBorder(EtchedBorder.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 EtchedBorder(EtchedBorder.LOWERED));

    JButton btn2 = new JButton("Golf");
    btn2.setPreferredSize(new Dimension(100,100));
    btn2.setBorder(new EtchedBorder(EtchedBorder.RAISED));

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

    getContentPane().add(p);
  }
}

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

EtchedBorder

左が彫り込み、右が浮き彫りです。

( Written by Tatsuo Ikura )

プロフィール画像

著者 / TATSUO IKURA

これから IT 関連の知識を学ばれる方を対象に、色々な言語でのプログラミング方法や関連する技術、開発環境構築などに関する解説サイトを運営しています。