java 改变创立窗口的背景_java – 改变摇摆窗口的底层背景颜色

博主发现一个关于颜色渲染的问题,在不同浏览器(IE、Opera、Eclipse)和Swing环境中,同一颜色显示不一致。在Swing中,尤其是在窗口调整大小时,颜色缝合处存在明显差异。尝试通过设置JFrame各层背景色来探究问题,但未找到解决方案。问题可能与Swing使用本机窗口和重绘机制有关,而在纯Java Frame中问题减轻。
摘要由CSDN通过智能技术生成

我注意到同样的问题.这种颜色在IE中是灰色的,在Opera中它是黑色的,在Eclipse中它是灰色的.它的缝隙在Swing中更加明显,因为它的缝合在重画时要慢一些,颜色就如你所说,黑色.如果您使用左上角调整大小,此问题将更加明显.

我编写了一个例子,并试图了解这个黑色的定义.一个JFrame has many layers,所以我在每一层设置了不同的背景.

import java.awt.Color;

import javax.swing.JFrame;

public class BFrame {

public static void main(String[] args) {

new JFrame() {{

super.setBackground(Color.CYAN);

this.getRootPane().setBackground(Color.BLUE);

this.getLayeredPane().setBackground(Color.RED);

this.getContentPane().setBackground(Color.YELLOW);

this.setSize(400,340);

this.setVisible(true);

}};

}

}

但这个例子没有帮助.也许颜色由超类设置为Frame.

java.lang.Object

java.awt.Component

java.awt.Container

java.awt.Window

java.awt.Frame

我的看法是,由于Swing自己绘制,而是使用一个本机Window,那么是在调整大小之前绘制的本机背景,并且在调整大小后绘制Swing的背景.但是对于本机应用程序,背景是在调整大小之前绘制的.

更新:我试着用一个Frame现在,它没有同样的问题.背景缝在调整大小前要画.

import java.awt.Color;

import java.awt.Frame;

public class B2Frame extends Frame {

public static void main(String[] args) {

new Frame() {{

setBackground(Color.YELLOW);

setSize(400,340);

setVisible(true);

}};

}

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值