Swing/TitledBorderHorizontalInsetOfText のバックアップ(No.5)
- バックアップ一覧
- 差分 を表示
- 現在との差分 を表示
- 現在との差分 - Visual を表示
- ソース を表示
- Swing/TitledBorderHorizontalInsetOfText へ行く。
- category: swing folder: TitledBorderHorizontalInsetOfText title: TitledBorderにタイトル文字列までの内余白を設定する tags: [TitledBorder, Border, JLabel] author: aterai pubdate: 2017-04-03T15:46:05+09:00 description: 左寄せのTitledBorderで、ボーダーの左端からタイトル文字列までの内余白を設定するテストを行います。 image: https://drive.google.com/uc?id=17kiVkxVACOFeT1HK8R68epgwBPGtzRYMJQ
概要
左寄せの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
分ボーダーが描画されない空白が生成される- ボーダーと中身のコンポーネントとの余白も、この値を変更すると増減してしまう?
- 内余白の設定が外部から変更できないので、