JFrame更改背景

在做图形化界面时,为了美观,我们常常需要对窗口的背景进行修改。那么怎样才能拥有美美的背景呢。
在写代码前我们需要先弄清楚JFrame的层次结构。
图片来自网络
即:
在这里插入图片描述
在这里插入图片描述
从上图可知,JFrame是由多层叠加而成。

JFrame frame=new JFrame("Test_1");
        frame.setBackground(Color.Blue);
        frame.setSize(800, 600);
        frame.setVisible(true);

当我们运行上述代码时,可以发现背景颜色仍然为白色,这就是因为JFrame的多层结构,Content Pane绘制在Root Pane之上,所以Content Pane的背景覆盖了,整个屏幕显示的为ContentPane的颜色。聪明的朋友们马上就想到了,那有没有办法将拦在上方的Pane设置为透明呢,答案是可以的,下面就是实现的两个方法:

setVisible()说明:为flase时,组件本身及增加在该组件上的组件都不可见;
setOpaque()说明:为flase时,只针对设置了透明的组件,其他组件不受影响;

设置背景颜色:

  		//设置背景颜色
	public void setBackColor() {
		this.setBackground(new Color(211,211,211));
		JPanel jp = (JPanel)this.getContentPane();
		jp.setOpaque(false);//设置为透明
		
	}
	
	public Alien_Invasion() {
		setBackColor();
		
		//创建屏幕对象
		setSize(850,600);
		setVisible(true);
		setDefaultCloseOperation(EXIT_ON_CLOSE);
	}
  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值