2023-09-19 (火) 16:00:34
  • 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

概要

JLabelの装飾にMatteBorderを使用し、4辺でそれぞれ異なる線幅の枠を描画します。
http://terai.xrea.jp/swing/matteborder/screenshot.png

サンプルコード

#spanend
#spanadd
Border outside = BorderFactory.createMatteBorder(0, 10, 1, 0, Color.GREEN);
#spanend
#spanadd
Border inside = BorderFactory.createEmptyBorder(0, 5, 0, 0);
#spanend
#spanadd
label.setBorder(BorderFactory.createCompoundBorder(outside, inside));
#spanend
#spanadd
View in GitHub: Java, Kotlin
Border outside = BorderFactory.createMatteBorder(0,10,1,0,Color.green);
Border inside  = BorderFactory.createEmptyBorder(0,5,0,0);
label.setBorder(BorderFactory.createCompoundBorder(outside, inside));

解説

  • 4辺それぞれ異なる幅の直線を描画可能なMatteBorderを使用して左(10px)と下(1px)のみフチを描画
    • 内部余白をEmptyBorderで作成し、上記のMatteBorderと組み合わせてCompoundBorderを作成
  • JComboBoxにアイコンを表示のようにBorderとしてIconをタイル状に描画する方法もある

参考リンク

Swing/IconComboBox

コメント