JColorChooserのプレビューパネルにTitledBorderでテキストを表示する
Total: 744
, Today: 1
, Yesterday: 0
Posted by aterai at
Last-modified:
概要
JColorChooser
のプレビューパネルにTitledBorder
でテキストを表示するかを切り替えます。
Screenshot
Advertisement
サンプルコード
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));
});
View in GitHub: Java, Kotlin解説
ColorChooser.showPreviewPanelText: true(null)
ColorChooser.showPreviewPanelText
はデフォルトでは値が未設定でnull
BasicColorChooserUI
でnull
の場合はtrue
として扱うよう設定されているため、MetalLookAndFeel
やWindowsLookAndFeel
ではデフォルトでプレビューパネルにTitledBorder
でテキストを表示する- このテキストのデフォルトは日本語環境では「プレビュー」、英語環境では
Preview
UIManager.put("ColorChooser.previewText", "...");
で文字列を変更可能
ColorChooser.showPreviewPanelText: false
JColorChooser
のプレビューパネルにテキストを表示しないGTKLookAndFeel
のデフォルトNimbusLookAndFeel
で切り替えが正しく反映されない場合がある?