Summary
HTMLの16進数カラーコードからColorを生成して、JLabelの文字色を変更する方法をテストします。
Screenshot

Advertisement
Source Code Examples
private MainPanel() {
super(new BorderLayout());
Box box = Box.createVerticalBox();
box.add(makeLabel("new Color(0xff0000)", new Color(0xff0000)));
box.add(makeLabel("new Color(0x88_88_88)", new Color(0x88_88_88)));
box.add(makeLabel("new Color(Integer.parseInt(\"00ff00\", 16))",
new Color(Integer.parseInt("00ff00", 16))));
box.add(makeLabel("new Color(Integer.decode(\"#0000ff\"))",
new Color(Integer.decode("#0000ff"))));
box.add(makeLabel("Color.decode(\"#00ffff\")", Color.decode("#00ffff")));
JLabel label = new JLabel("<html><span style='color: #ff00ff'>#ff00ff");
label.setBorder(BorderFactory.createTitledBorder(
"new JLabel(\"<html><span style='color: #ff00ff'>#ff00ff\")"));
box.add(label);
box.add(Box.createVerticalGlue());
add(new JScrollPane(box));
setPreferredSize(new Dimension(320, 240));
}
private static JLabel makeLabel(String title, Color c) {
JLabel label = new JLabel(String.format("#%06x", c.getRGB() & 0xffffff)) {
@Override public Dimension getMaximumSize() {
Dimension d = super.getPreferredSize();
d.width = Short.MAX_VALUE;
return d;
}
};
label.setBorder(BorderFactory.createTitledBorder(title));
label.setForeground(c);
return label;
}
View in GitHub: Java, KotlinDescription
new Color(0xff0000)- 頭に
0xをつけた16進数表記の数値を使用してColorを生成
- 頭に
new Color(0x88_88_88)- 頭に
0xをつけた16進数表記の数値を使用してColorを生成 2桁ごとにアンダースコア_を挿入して16進数表記数値リテラルの可読性を向上させている
- 頭に
new Color(Integer.parseInt("00ff00", 16))- Integer.parseInt(String, int) (Java Platform SE 8)
- 基数を
16進にしてInteger.parseInt(String, int)を使用し、文字列を整数に変換してColorを生成 #00ff00や0x00ff00などはNumberFormatExceptionになる
new Color(Integer.decode("#0000ff"))- Integer.decode(String) (Java Platform SE 8)
Integer.decode(String)を使用して文字列を整数にデコード- 基数指定子のない
0000ffや桁間のアンダースコアがある0x00_00_ffはNumberFormatExceptionになる
Color.decode("#00ffff")- Color.decode(String) (Java Platform SE 8)
- 内部で
Integer.decode(String)を使用して文字列を整数にデコードし、Colorを生成
new JLabel("<html><span style='color: #ff00ff'>#ff00ff")- 要素に
style属性を追加してCSSで文字色を指定したJLabelを生成
- 要素に
Reference
- java - Is it possible to use Color Hex in JLabel like #02f7fc? - Stack Overflow
- [JDK-8293776] Adds CSS 4 and 8 digits hex coded Color - Java Bug System