• 追加された行はこの色です。
  • 削除された行はこの色です。
TITLE:MatteBorderでラベル枠を修飾
#navi(../)
*MatteBorderでラベル枠を修飾 [#j81b32c2]
>編集者:[[Terai Atsuhiro>terai]]~
作成日:2004-12-20~
更新日:&lastmod;
---
category: swing
folder: MatteBorder
title: MatteBorderでラベル枠を修飾
tags: [MatteBorder, JLabel]
author: aterai
pubdate: 2004-12-20T00:29:03+09:00
description: JLabelの装飾にMatteBorderを使用し、4辺でそれぞれ異なる線幅の枠を描画します。
image: https://lh6.googleusercontent.com/_9Z4BYR88imo/TQTPp-xSv1I/AAAAAAAAAeU/K5lHH6YMz_E/s800/MatteBorder.png
---
* 概要 [#summary]
`JLabel`の装飾に`MatteBorder`を使用し、`4`辺でそれぞれ異なる線幅の枠を描画します。

#contents
#download(https://lh6.googleusercontent.com/_9Z4BYR88imo/TQTPp-xSv1I/AAAAAAAAAeU/K5lHH6YMz_E/s800/MatteBorder.png)

**概要 [#t8952ff7]
MatteBorderでラベルの枠を修飾します。

#screenshot

**サンプルコード [#a1801918]
#code{{
 Border outside = BorderFactory.createMatteBorder(0,10,1,0,Color.green);
 Border inside  = BorderFactory.createEmptyBorder(0,5,0,0);
 label.setBorder(BorderFactory.createCompoundBorder(outside, inside));
* サンプルコード [#sourcecode]
#code(link){{
Border outside = BorderFactory.createMatteBorder(0, 10, 1, 0, Color.GREEN);
Border inside = BorderFactory.createEmptyBorder(0, 5, 0, 0);
label.setBorder(BorderFactory.createCompoundBorder(outside, inside));
}}
-&jnlp;
-&jar;
-&zip;

**解説 [#uc67693e]
MatteBorderは、4辺それぞれに色などを表示することができます。上記のサンプルでは、左と下のみ枠を描いてタイトル風のラベルを作成しています。アイコンをタイル状に描画することもできるので、[[JComboBoxにアイコンを表示>Swing/IconComboBox]]のような使い方をする場合もあります。
* 解説 [#explanation]
- `4`辺それぞれ異なる幅の直線を描画可能な`MatteBorder`を使用して左(`10px`)と下(`1px`)のみフチを描画
-- 内部余白を`EmptyBorder`で作成し、上記の`MatteBorder`と組み合わせて`CompoundBorder`を作成
- [[JComboBoxにアイコンを表示>Swing/IconComboBox]]のように`Border`として`Icon`をタイル状に描画する方法もある

**参考リンク [#z18c2d24]
-[[JComboBoxにアイコンを表示>Swing/IconComboBox]]
-[[JTextField内にアイコンを追加>Swing/IconTextField]]
* 参考リンク [#reference]
- [https://docs.oracle.com/javase/jp/8/docs/api/javax/swing/border/MatteBorder.html MatteBorder (Java Platform SE 8)]
- [[JComboBoxにアイコンを表示>Swing/IconComboBox]]
- [[JTextField内にアイコンを追加>Swing/IconTextField]]

**コメント [#qf46b07b]
* コメント [#comment]
#comment
#comment