有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

回转立根台(新颜色());在java中,不理解给定的RGB值

我有一个带有gui的程序,在我设置的JFrame上

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

问题是我得到的是灰色,但不是正确的颜色。如果我在PhotoShop中检查它,它会给出RGB值(126125123)

另外,我尝试了十六进制值,同样的结果


共 (6) 个答案

  1. # 1 楼答案

    查看Adam的评论,即使没有任何工作代码,我也只是猜测,由于JFrame的零顺序或布局,这个场景正在被提出。 实际上,在JavaSwing中,设置背景颜色需要多加注意,请查看swing java文档

  2. # 2 楼答案

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

    当你打开页面时,页面顶部似乎是灰色的 还要确保你的JFrame是不透明的,否则你看不到你的颜色

    setOpaque(true);
    
  3. # 3 楼答案

    我试过你解释的;在awt中没有问题;在swing中,背景设置似乎不正确
    你有没有检查过你的背景是否发生了变化,例如背景发生了变化(颜色为红色)

    示例代码:

    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);
    }}
    
  4. # 4 楼答案

    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)
    

    您不能为JFrame设置setBackground,例如,这仅适用于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();
                }
            });
        }
    }
    
  5. # 5 楼答案

    这对我很有效。 希望对你有所帮助 代码在当前JFrame中添加了一个JPanel,您可以在此面板上进一步构建GUI。您可以在JPanel上定制RGB颜色,而不是在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);
        }
    }
    
  6. # 6 楼答案

    第一步-创建jFrame的对象:

    JFrame frame = new JFrame();
    

    第二步:

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