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
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
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();
}
});
}
}
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.
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);
}}
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);
}
}
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);
Première étape - créer un objet de jFrame
:
JFrame frame = new JFrame();
Deuxième étape:
frame.getContentPane().setBackground(new Color(16,144,144));