Swing/VerticalProgressBarRotateText のバックアップ(No.2)
- バックアップ一覧
- 差分 を表示
- 現在との差分 を表示
- 現在との差分 - Visual を表示
- ソース を表示
- Swing/VerticalProgressBarRotateText へ行く。
- 1 (2023-01-23 (月) 06:31:43)
- 2 (2023-01-25 (水) 14:37:57)
- category: swing folder: VerticalProgressBarRotateText title: JProgressBarが垂直配置の場合その進捗文字列を回転するかを変更する tags: [JProgressBar, UIManager, UIDefaults, NimbusLookAndFeel] author: aterai pubdate: 2023-01-23T06:28:18+09:00 description: NimbusLookAndFeelを設定したJProgressBarが垂直配置の場合その進捗文字列を回転して表示するかを変更します。 image: https://drive.google.com/uc?id=1y_mjj8GE5DxLoNwhPdxPpaNEN5h4965I
概要
NimbusLookAndFeel
を設定したJProgressBar
が垂直配置の場合その進捗文字列を回転して表示するかを変更します。
Screenshot
![Swing/VerticalProgressBarRotateText screenshot](https://ateraimemo.com/swing/verticalprogressbarrotatetext/screenshot.png)
Advertisement
サンプルコード
// UIManager.put("ProgressBar.rotateText", Boolean.FALSE);
JProgressBar progressBar1 = new JProgressBar(SwingConstants.VERTICAL);
progressBar1.setStringPainted(true);
JProgressBar progressBar2 = new JProgressBar(SwingConstants.VERTICAL);
progressBar2.setStringPainted(true);
UIDefaults d = new UIDefaults();
d.put("ProgressBar.rotateText", Boolean.FALSE);
// NimbusDefaults has a typo in a L&F property - Java Bug System
// https://bugs.openjdk.org/browse/JDK-8285962
// d.put("ProgressBar.vertictalSize", new Dimension(50, 150));
d.put("ProgressBar.verticalSize", new Dimension(50, 150));
progressBar2.putClientProperty("Nimbus.Overrides", d);
progressBar2.putClientProperty("Nimbus.Overrides.InheritDefaults", true);
View in GitHub: Java, Kotlin解説
ProgressBar.rotateText
:Boolean.TRUE
- 進捗文字列を
-90
度回転して表示 NimbusLookAndFeel
でのデフォルト- 水平
JProgressBar
ではこの設定は無効 MetalLookAndFeel
、WindowsLookAndFeel
などではこの設定は無効- 垂直
JProgressBar
の推奨幅はデフォルトのまま変化しない - 垂直
JProgressBar
の推奨サイズはtypo
があってd.put("ProgressBar.vertictalSize", new DimensionUIResource(19, 150))
は使用されず、BasicLookAndFeel
の"ProgressBar.verticalSize", new DimensionUIResource(12, 146)
が適用されて水平JProgressBar
と比較すると若干細くなる
- 進捗文字列を
ProgressBar.rotateText
:Boolean.FALSE
- 進捗文字列は回転せず横組のまま表示
SynthProgressBarUI
のデフォルト- 垂直
JProgressBar
の推奨幅は進捗文字列幅とは同期しないので、UIManager.put("ProgressBar.verticalSize", new Dimension(50, 150))
などで推奨サイズを調節する必要がある
参考リンク
- JProgressBarの文字列をJLayerを使って表示する
- [JDK-8285962] NimbusDefaults has a typo in a L&F property - Java Bug System