Swing/AutomaticallyResizeFont のバックアップ(No.11)
- バックアップ一覧
- 差分 を表示
- 現在との差分 を表示
- 現在との差分 - Visual を表示
- ソース を表示
- Swing/AutomaticallyResizeFont へ行く。
- 1 (2012-12-16 (日) 01:35:41)
- 2 (2013-05-24 (金) 17:27:37)
- 3 (2014-10-09 (木) 01:57:08)
- 4 (2015-02-12 (木) 15:50:07)
- 5 (2016-12-15 (木) 17:02:15)
- 6 (2017-08-18 (金) 19:01:26)
- 7 (2018-08-29 (水) 18:32:22)
- 8 (2020-08-25 (火) 15:55:55)
- 9 (2022-02-16 (水) 16:20:16)
- 10 (2025-01-03 (金) 08:57:02)
- 11 (2025-01-03 (金) 09:01:23)
- 12 (2025-01-03 (金) 09:02:38)
- 13 (2025-01-03 (金) 09:03:21)
- 14 (2025-01-03 (金) 09:04:02)
- category: swing folder: AutomaticallyResizeFont title: Fontサイズをコンポーネントの幅に応じて変更する tags: [JTextPane, Font] author: aterai pubdate: 2011-10-31T15:45:05+09:00 description: JTextPaneのフォントサイズをその幅に応じて自動変更します。 image:
Summary
JTextPane
のフォントサイズをその幅に応じて自動変更します。
Screenshot
Advertisement
サンプルコード
private final Font font = new Font(Font.MONOSPACED, Font.PLAIN, 12);
private final JTextPane editor = new JTextPane() {
private float font_size = 0f;
@Override public void doLayout() {
Insets i = getInsets();
float f = .08f * (getWidth() - i.left - i.right);
if (Math.abs(font_size - f) > 1.0e-1) {
setFont(font.deriveFont(f));
font_size = f;
}
super.doLayout();
}
};
View in GitHub: Java, Kotlin解説
上記のサンプルでは、JTextPane#doLayout()
メソッドをオーバーライドし、その幅のリサイズに応じて使用するフォントのサイズをFont#deriveFont(float)
メソッドで変更しています。