web-dev-qa-db-fra.com

setBackground (nouvelle couleur ()); en Java ne comprend pas la valeur RVB donnée

Après avoir cherché google pendant une demi-heure, j'ai abandonné! :)

J'ai un programme avec une interface graphique, sur le cadre JFrame que j'ai défini, 

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

[Le problème] Cela donne une couleur grisâtre, mais pas la bonne! Si je vérifie la couleur de l'interface graphique dans Photo Shop, les valeurs RVB (126, 125, 123) sont affichées. 

Je suis vraiment frustré .. Quelqu'un a le même problème?

Ps. J'ai essayé avec la valeur HEX, même résultat.

Cordialement, Juri

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)

vous ne pouvez pas définir setBackground pour JFrame, cela n'est possible que pour ContentPane, par exemple

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

MODIFIER

enter image description here

du code

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

vérifiez avec le commentaire d'Adam et même si cela ne fonctionne pas, alors sans code fonctionnel, je suppose que ce scénario est en train d'être soulevé à cause d'un ordre zéro ou d'une mise en page du JFrame. un peu plus d’attention, consultez Swing Java Docs. 

1
Abhishek Choudhary

j'ai essayé ce que vous avez expliqué; dans tous les cas, ce n'est pas un problème en swing, il semble que l'arrière-plan n'est pas défini correctement
avez-vous vérifié, par exemple, si votre arrière-plan change, avec setBackground (Color.red)?

exemple de code:

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

Cela a fonctionné pour moi. J'espère que cela aidera Le code, ajoute un JPanel, à JFrame actuel, vous pouvez continuer panneau. Vous pouvez personnaliser les couleurs RVB sur JPanel et non sur JFrame.

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

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

Il semble que le gris se trouve en haut de la page lorsque vous l'ouvrez. :) Assurez-vous également que votre JFrame est opaque ou vous ne verrez pas votre couleur!

setOpaque(true);
0
Blue Okiris

Première étape - créer un objet de jFrame:

JFrame frame = new JFrame();

Deuxième étape: 

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