Java2D的:JPanel的设置背景颜色

问题描述:

我有如下所示的代码不工作:Java2D的:JPanel的设置背景颜色

public VizCanvas(){ 
    { 
     this.setBackground(Color.black); 
     this.setSize(400,400); 
    } 
} 

它能正常工作,并显示在黑色的背景板。但是,当我实现不做任何事情的绘画方法时,颜色会更改为默认颜色,即灰色。

我试图设置graphics.setColor(),但它没有帮助。

您需要在绘画方法中将画布填充到背景颜色。沿线的东西:

g.setColor(Color.BLACK); 
g.fillRect(0, 0, getWidth(), getHeight()); 

之后,绘制任何你需要的东西。在做任何事情之前,您也可以尝试在绘画方法中调用super.paint(g)

自定义绘画应该通过覆盖paintComponent()方法来完成,而不是paint()方法。然后你所做的就是调用super.paintComponent()来绘制背景。

设置组件的大小什么也不做。布局管理器将覆盖大小。您应该设置首选大小或重写getPreferredSize()方法。

阅读Swing tutorial获取Swing基础知识。有关于“自定义绘画”和“使用布局管理器”的章节。

+0

http://java.sun.com/j2se/1.4.2/docs/api/java/awt/Canvas.html#paint%28java.awt.Graphics%29 “Canvas子类的大多数应用程序应该重写这个方法是为了执行一些有用的操作(通常是画布的自定义绘制),默认操作只是简单地清除画布,重写此方法的应用程序不需要调用super.paint(g)。 我假设他们的VizCanvas子类Canvas,但是它们的构造函数看起来有点光秃秃的。嗯。 – 2010-05-14 19:09:35