java 中怎样设置窗口的颜色

 我来答
wang_wenshuai
2015-06-08 · TA获得超过473个赞
知道小有建树答主
回答量:149
采纳率:100%
帮助的人:154万
展开全部

调用需要设置颜色的控件的setBackgroud();方法就可以了。


但是设置JFrame和JLabel的背景色,一般就是下面的做法

JFrame frame = new JFrame();
frame.setBackground(Color.Red);
JLabel l = new JLabel();
l.setBackground(Color.Yellow);
frame.add(l);
结果根本就没有反应。这是由于Swing跟AWT有千丝万缕的联系,它既要支持AWT又要有自己新的体系,所以呢,这个如果对于AWT中的Frame是可以直接通过setBackground来设置背景色,但是对于JFrame则不可以,应该采用下面的方法:
JFrame frame = new JFrame();
frame.getContentPane().setBackground(Color.Red);
而对于JLabel来说则要设置JLabel为不透明的才行,即
JLabel comp = new JLabel(value);
comp.setBackground(color);
comp.setOpaque(true);

 

这句代码frame.setBackground(Color.Red);
改变的是框架的颜色,框架的上面还有窗格,所以你要改变窗格的颜色才可以侧低改变框架的颜色
在主函数里加Containerframe.getContentPane()意思是获得窗格

               setBackground(Color.Red);                       改变窗格颜色


另外再附一段背景颜色渐变的代码

运行示意图如下:

import java.awt.Color;
import java.awt.GradientPaint;
import java.awt.Graphics;
import java.awt.Graphics2D;
import javax.swing.JPanel;
import java.awt.BorderLayout;
import java.awt.EventQueue;
import javax.swing.JFrame;
import javax.swing.JPanel;

class ShadePanel extends JPanel {
   
    private static final long serialVersionUID = -2644424271663261406L;
   
    public ShadePanel() {
        super();
        setLayout(null);
    }
   
    @Override
    protected void paintComponent(Graphics g1) {// 重写绘制组件外观
        Graphics2D g = (Graphics2D) g1;
        super.paintComponent(g);// 执行超类方法
        int width = getWidth();// 获取组件大小
        int height = getHeight();
        // 创建填充模式对象
        GradientPaint paint = new GradientPaint(0, 0, Color.CYAN, 0, height,
                Color.MAGENTA);
        g.setPaint(paint);// 设置绘图对象的填充模式
        g.fillRect(0, 0, width, height);// 绘制矩形填充控件界面
    }
}
 
 
 


public class ShadeBackgroundImage extends JFrame {
   
   
    private static final long serialVersionUID = 4693799019369193520L;
    private JPanel contentPane;
   
   
    public static void main(String[] args) {
        EventQueue.invokeLater(new Runnable() {
            public void run() {
                try {
                    ShadeBackgroundImage frame = new ShadeBackgroundImage();
                    frame.setVisible(true);
                } catch (Exception e) {
                    e.printStackTrace();
                }
            }
        });
    }
   
   
    public ShadeBackgroundImage() {
        setTitle("背景为渐变色的主界面");// 设置窗体标题
        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        setBounds(100, 100, 450, 300);
        contentPane = new JPanel();// 创建内容面板
        contentPane.setLayout(new BorderLayout(0, 0));
        setContentPane(contentPane);
        ShadePanel shadePanel = new ShadePanel();// 创建渐变背景面板
        contentPane.add(shadePanel, BorderLayout.CENTER);// 添加面板到窗体内容面板
    }
}
hob007
2009-09-22 · 超过33用户采纳过TA的回答
知道答主
回答量:61
采纳率:0%
帮助的人:0
展开全部
不清楚你具体用的Java的哪个类创建的窗口。
在java.awt.Component类中有public void setBackground(Color c),可以用于设置窗口的颜色。Frame、panel等都继承了Component类,也可也使用该方法。建议里去API里边找找。
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
areshowl
2009-10-07 · TA获得超过121个赞
知道小有建树答主
回答量:406
采纳率:0%
帮助的人:141万
展开全部
API里都有,自己查
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式