---
category: swing
folder: ColorChooserPreviewText
title: JColorChooserのプレビューパネルにTitledBorderでテキストを表示する
tags: [JColorChooser, UIManager]
author: aterai
pubdate: 2022-09-26T01:36:10+09:00
description: JColorChooserのプレビューパネルにTitledBorderでテキストを表示するかを切り替えます。
image: https://drive.google.com/uc?id=1WZCnjXziIrbnu75REm5tT6mjk5Mwdujc
---
* 概要 [#summary]
`JColorChooser`のプレビューパネルに`TitledBorder`でテキストを表示するかを切り替えます。

#download(https://drive.google.com/uc?id=1WZCnjXziIrbnu75REm5tT6mjk5Mwdujc)

* サンプルコード [#sourcecode]
#code(link){{
String key = "ColorChooser.showPreviewPanelText";
JTextArea log = new JTextArea();
JCheckBox check = new JCheckBox(key, UIManager.getBoolean(key)) {
  @Override public void updateUI() {
    super.updateUI();
    boolean b = UIManager.getLookAndFeelDefaults().getBoolean(key);
    setSelected(b);
    LookAndFeel laf = UIManager.getLookAndFeel();
    log.append(String.format("%s%n  %s: %s%n", laf, key, b));
    UIManager.put(key, b);
  }
};

JButton button = new JButton("JColorChooser.showDialog(...)");
button.addActionListener(e -> {
  UIManager.put(key, check.isSelected());
  Color c = JColorChooser.showDialog(getRootPane(), "title", null);
  log.append(String.format("color: %s%n", c));
});
}}

* 解説 [#explanation]
- `ColorChooser.showPreviewPanelText: true(null)`
-- `ColorChooser.showPreviewPanelText`はデフォルトでは値が未設定で`null`
-- `BasicColorChooserUI`で`null`の場合は`true`として扱うよう設定されているため、`MetalLookAndFeel`や`WindowsLookAndFeel`ではデフォルトでプレビューパネルに`TitledBorder`でテキストを表示する
-- このテキストのデフォルトは日本語環境では「プレビュー」、英語環境では`Preview`
-- `UIManager.put("ColorChooser.previewText", "...");`で文字列を変更可能
- `ColorChooser.showPreviewPanelText: false`
-- `JColorChooser`のプレビューパネルにテキストを表示しない
-- `GTKLookAndFeel`のデフォルト
-- `NimbusLookAndFeel`で切り替えが正しく反映されない場合がある?

* 参考リンク [#reference]
- [[JColorChooserのSwatchサイズを変更する - Java Swing Tips>https://ateraimemo.com/Swing/ColorChooserSwatchSize]]
- [[JColorChooserのSwatchサイズを変更する>Swing/ColorChooserSwatchSize]]

* コメント [#comment]
#comment
#comment