Swing/MatteBorder のバックアップの現在との差分(No.3)
2023-09-19 (火) 16:00:34
概要
JLabel
の装飾にMatteBorder
を使用し、4
辺でそれぞれ異なる線幅の枠を描画します。
Screenshot
Advertisement
サンプルコード
#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, KotlinBorder 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
をタイル状に描画する方法もある