TitledBorderにタイトル文字列までの内余白を設定する
Total: 3009
, Today: 1
, Yesterday: 2
Posted by aterai at
Last-modified:
概要
左寄せのTitledBorder
で、ボーダーの左端からタイトル文字列までの内余白を設定するテストを行います。
Screenshot
Advertisement
サンプルコード
// Space between the border and the component's edge
protected static final int EDGE_SPACING = 2; // 2px;
// Space between the border and text
protected static final int TEXT_SPACING = 5; // 2px;
// Horizontal inset of text that is left or right justified
protected static final int TEXT_INSET_H = 10; // 5px;
View in GitHub: Java, Kotlin解説
override TitledBorder#paintBorder(...)
TitledBorder#paintBorder(...)
をオーバーライドしてボーダーの描画位置を10px
右に移動- タイトル文字列までの内余白は変化せず、また中身のコンポーネントは移動しないのでボーダーと重なる
override TitledBorder#getBorderInsets(...)
TitledBorder#getBorderInsets(...)
をオーバーライドしてボーダーの左内余白を10px
増加- タイトル文字列までの内余白は変化しないが中身のコンポーネントが
10px
右に移動する
ComponentTitledBorder + EmptyBorder
- 文字列ではなく
JLabel
をタイトルとして描画するComponentTitledBorder
を使用してJLabel
の描画開始位置を10px
右に移動 - タイトル文字列までの
10px
の内余白にボーダーが描画され、タイトルに使用するJLabel
に設定したEmptyBorder
分の5px
は空白になり合計15px
の内余白が生成される
- 文字列ではなく
TitledBorder2: copied from TitledBorder
- 内余白の設定が外部から変更できないので
TitledBorder
を全てコピーしてTEXT_SPACING
とTEXT_INSET_H
の値だけ変更 TEXT_INSET_H
を2px
から10px
に変更したためボーダーからタイトル文字列までの間に10px
の内余白が生成されるTEXT_SPACING
を2px
から5px
に変更したため上記の内余白から5px
分ボーダーが描画されない空白が生成される- ボーダーと中身のコンポーネントとの余白もこの値の増減に連動してしまう?
- 内余白の設定が外部から変更できないので