2016-10-09 8 views
0

JLabelColorヘックスを使用することは可能ですか?#02f7fc? A-Fカラーを使いたいです。 label.setForeground(Color.(BLUE/RED/BLACK/…);を使用するのはとても退屈です。#02f7fcのようにJLabelでColor Hexを使用することはできますか?

+1

'new Color(r、g、b)' .. ['Color'コンストラクタ]を参照してください(http://docs.oracle.com/javase/8/docs/api/java/awt/)。 Color.html#constructor.summary)を参照してください。 –

+1

注:HTMLでは16進数の色を使用でき、ラベルは(基本的な)HTMLをサポートしますが、純粋に16進色を使用するためにラベルにHTMLを使用するハックです。 –

答えて

2

このapproachが@assyliasであるため、次の方法でjavafx.scene.paint.Colorjava.awt.Colorに変換します。適しimport Withステートメント

private static Color awtColor(javafx.scene.paint.Color fxColor) { 
    return new Color(
     (float) fxColor.getRed(), 
     (float) fxColor.getGreen(), 
     (float) fxColor.getBlue(), 
     (float) fxColor.getOpacity()); 
} 

、あなたはその後、JavaFXのColor APIを活用することができます。この例では、Color.web()を使用して、「HTMLまたはCSS属性文字列で指定されたRGBカラー」を作成します。

import static javafx.scene.paint.Color.web; 
… 
label.setForeground(awtColor(web("0xF0F8FF"))); // ALICEBLUE 
label.setForegroundn(awtColor(web("AliceBlue"))); // #F0F8FF 
2

@Andrewが言ったように、あなたが使用することができnew Color(int rgb)

import java.awt.*; 
import javax.swing.*; 

public class HexColorTest { 
    public JComponent makeUI() { 
    JPanel p = new JPanel(); 
    p.add(makeLabel(new Color(0xff0000))); 
    p.add(makeLabel(new Color(Integer.parseInt("#00ff00".substring(1), 16)))); 
    p.add(new JLabel("<html><span style='color: #0000ff'>#0000ff")); 
    return p; 
    } 
    private static JLabel makeLabel(Color c) { 
    JLabel label = new JLabel(String.format("#%06x", c.getRGB() & 0xffffff)); 
    label.setForeground(c); 
    return label; 
    } 
    public static void main(String... args) { 
    EventQueue.invokeLater(() -> { 
     JFrame f = new JFrame(); 
     f.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE); 
     f.getContentPane().add(new HexColorTest().makeUI()); 
     f.setSize(320, 240); 
     f.setLocationRelativeTo(null); 
     f.setVisible(true); 
    }); 
    } 
} 
2

あなたはdecodeメソッドを使用して六角を使用して色を設定できるようにする必要があり、次の。

label.setForeground(Color.decode("#FFFF00")); 
関連する問題