web-dev-qa-db-ja.com

setBackground(new color()); in Javaは指定されたRGB値を理解しません

グーグルで30分検索した後、私はあきらめました! :)

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

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

【問題点】灰色がかった色になりますが、正しい色ではありません! Photo ShopでGUIの色を確認すると、RGB値(126、125、123)が表示されます。

私は本当にイライラしています..誰かが同じ問題を抱えていますか?

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

よろしく、ジュリ

6
JW_
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)

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

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

編集

enter image description here

コードから

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();
            }
        });
    }
}
7
mKorbel

adamのコメントを確認してください。機能しなかったとしても、機能するコードがないと、このシナリオは、順序がゼロであるか、JFrameのレイアウトを言っているために発生していると推測しています。実際、Java Swingで、背景色の設定にはもう少し注意が必要です。SwingJavaドキュメントを確認してください。

1

私はあなたが説明したことを試しました。 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);
}}
0
Hachi

これは私のために働きました。それが役立つことを願っています、コードは、JPanelを追加します、現在のJFrameに対して、このパネルでさらにGUIを構築できます。 JFrameではなくJPanelでRGBカラーをカスタマイズできます。

import javax.swing.*;
import Java.awt.*;

public class Main{

    public static void main(String[] args) {
        JFrame frame = new JFrame();
        JPanel panel = new JPanel();
        //Class class = new Class();
        frame.setSize(1920,1080);
        //frame.setTitle("XYZ");
        frame.setResizable(false);
        frame.setVisible(true);
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        frame.add(panel);
        panel.setBackground(new Color(51,153,255));
        //panel.add(class);
    }
}
0
BUKJACK
 if(evt.getSource() == jMenuItem11){
        getContentPane().setBackground(new Color(170, 8, 54));
    }
    if(evt.getSource() == jMenuItem12){
        getContentPane().setBackground(new Color(8, 54, 169));
    }
    if(evt.getSource() == jMenuItem13){
       getContentPane().setBackground(new Color(84, 8, 170));
    }

}

0
David Ibarra

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

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

setOpaque(true);
0
Blue Okiris

最初のステップ-jFrameのオブジェクトを作成します。

JFrame frame = new JFrame();

第二段階:

frame.getContentPane().setBackground(new Color(16,144,144));
0
sheikh sarfaraz