14

の色と一致するようsetBackgroundにを呼び出そうとしていますが、色は入力した色よりもいくらか明るいです。JPanelJFrame

私はHSB、RGB、HEXコードを設定しようとしましたが、それらはすべて同じ色、私の色のより明るいバージョンを与えてくれます。

希望の色を取得する方法がよくわかりませんか?

編集:

Photoshop から色を取得します。適切な色 (必要な色) を調べて、HSB RGB または HEX コードをコピーします。Photoshop では正常に見えますが、Java の方が明るい色になりますか?ここに画像の説明を入力

私はJavaコードを使用しました:

Color color = new Color(0x94b3c7); 

    jpanel.setBackground(color);
4

3 に答える 3

11

Substance は、背景色を「着色」して、テーマの色の一部を追加しようとしています。異なるスキンを使用すると、異なる結果が得られます。たとえば、秋の肌は非常にオレンジ色になります。org.pushingpixels.substance.api.SubstanceLookAndFeel#COLORIZATION_FACTORこれは、クライアント プロパティを に設定することで、コンポーネントごとに変更できます1.0。例えば:

frame.putClientProperty(SubstanceLookAndFeel.COLORIZATION_FACTOR, 1.0)

これにより、バックグラウンド ペインタは、ユーザーが指定したバックグラウンド カラーの 50% を使用するのではなく、100% を使用するように指示されます。

これはグローバルに設定することもできます...

UIManager.put(SubstanceLookAndFeel.COLORIZATION_FACTOR, 1.0);

繰り返しますが、コンポーネントごとのオーバーライドの対象となります。設定されていない場合、デフォルトのカラー化係数は0.5です。

于 2011-10-06T15:28:43.837 に答える
6

この SSCCE は、Photoshop サンプルの色を示しています。

public class ColorTest {

    public static void main(String[] args) {
        JLabel label = new JLabel("Java Color");
        label.setFont(label.getFont().deriveFont(20f));
        label.setForeground(Color.WHITE);
        label.setBackground(new Color(0x94b3c7));
        label.setBorder(BorderFactory.createEmptyBorder(20, 20, 20, 20));
        label.setOpaque(true);

        JPanel jpanel = new JPanel();
        jpanel.setOpaque(true);
        jpanel.add(label);
        jpanel.setBackground(Color.GREEN);

        JFrame frame = new JFrame();
        frame.setContentPane(jpanel);
        frame.pack();
        frame.setLocationRelativeTo(null);
        frame.setVisible(true);
    }
}

おそらく、これは、必要な色を得るためにどのように色を設定する必要があるかを明らかにするのに役立ちますか?

編集:Substance L&Fの問題を解決しようとするために、不透明の明示的な設定が追加されました。

于 2011-10-04T11:44:57.823 に答える
3

だから私は問題を見つけました。実はちょっと面倒くさいので、質問に追加しておけばよかったのですが、これが問題の原因だとは思ってもみませんでした。

Substance.apiWebページhttp://www.pushing-pixels.orgから呼び出されたものを使用してSeim

GUIのカラースキンで、JFrameの色を変更するつもりでしたが、カラープルーフ全体を変更することにしました。

したがって、誰かがJFrameの色を変更する方法を知っている場合は、私に向かってください。:)

これは盗賊のコードです:

public static void main(String[] args) {

    JFrame.setDefaultLookAndFeelDecorated(true);
    SwingUtilities.invokeLater(new Runnable() {
        public void run() {
            try {
                UIManager.setLookAndFeel(new SubstanceRavenLookAndFeel());
            } catch (Exception e) {
            }
        }
    });
}
于 2011-10-04T19:02:26.550 に答える