6

私が設定したJFrameに、いくつかのGUIを備えたプログラムがあります。

 setBackground( new Color(107, 106, 104) );

問題は、灰色がかった色になりますが、正しい色にはならないことです。PhotoShopでチェックすると、RGB値(126、125、123)が表示されます。

追伸 私はHEX値で試しましたが、同じ結果です。

4

7 に答える 7

9
I have a program with some gui, on the JFrame I set,

 setBackground( new Color(107, 106, 104) );

[The problem] It gives a greyish color, but not the right one! 
If I check the gui's color in Photo Shop, it gives me the RGB 
values (126, 125, 123)

setBackgroundに設定することはできません。これは、たとえば にJFrameのみ可能です。ContentPane

JFrame#getContentPane.setBackground(new Color(107, 106, 104));

編集

ここに画像の説明を入力

コードから

import java.awt.Color;
import java.awt.Dimension;
import javax.swing.JFrame;
import javax.swing.SwingUtilities;

public class Check extends JFrame {

    private static final long serialVersionUID = 1L;

    public void makeUI() {
        JFrame f = new JFrame();
        f.getContentPane().setBackground(new Color(107, 106, 104));
        f.setDefaultCloseOperation(EXIT_ON_CLOSE);
        f.setSize(new Dimension(300, 200));
        f.setVisible(true);
    }

    public static void main(String[] args) {

        SwingUtilities.invokeLater(new Runnable() {

            @Override
            public void run() {
                new Check().makeUI();
            }
        });
    }
}
于 2012-03-14T08:52:21.073 に答える
1

Adam のコメントを確認してください。動作していない場合でも、動作するコードがなければ、このシナリオがゼロオーダーまたは JFrame のレイアウトのために発生していると推測しています。実際には Java swing では、背景色の設定にはもう少し注意が必要です。Swing Java Docs を確認してください。

于 2012-03-14T08:46:57.863 に答える
0

http://www.tayloredmktg.com/rgb/

ページを開くと、右側のページの上部にグレーが表示されているように見えます。:) また、JFrame が不透明であることを確認してください。そうしないと、色が表示されません。

setOpaque(true);
于 2013-11-19T23:51:34.273 に答える
0

私はあなたが説明したことを試しました; awt では問題ありません。スイングでは、背景が正しく設定されて
いないようです。たとえば、setBackground(Color.red) を使用して背景が変更されているかどうかを確認しましたか?

コード例:

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

public class Tmp extends Frame { public static void main(String[] args) {
    //Frame tmp = new Frame();
    Frame tmp = new JFrame();
    tmp.setBackground(new Color(107, 106, 104));
    tmp.setSize(40,40);
    tmp.setVisible(true);
}}
于 2012-03-14T08:54:57.777 に答える