我有以下代码:
public VizCanvas(){
{
this.setBackground(Color.black);
this.setSize(400,400);
}
}
工作正常,并在黑色背景下显示面板。但是当我实现paint方法时,颜色会变为默认颜色,即灰色。
我尝试设置graphics.setColor()但它没有帮助。
答案 0 :(得分:9)
您需要在绘画方法中将画布填充到背景颜色中。有点像:
g.setColor(Color.BLACK);
g.fillRect(0, 0, getWidth(), getHeight());
之后,画出你需要的东西。在做任何事情之前,你也可以尝试在paint方法中调用super.paint(g)
。
答案 1 :(得分:2)
自定义绘制应该通过覆盖paintComponent()方法来完成,而不是paint()方法。然后你要做的就是调用super.paintComponent()来绘制背景。
设置组件的大小不起作用。布局管理器将覆盖大小。您应该设置首选大小或覆盖getPreferredSize()方法。
阅读Swing tutorial了解Swing基础知识。有关于“自定义绘画”和“使用布局管理器”的部分。