1

我有如下所示的代码:

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

它工作正常,并以黑色背景显示面板。但是当我实现什么都不做的paint方法时,颜色变为默认颜色,即灰色。

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

4

2 回答 2

10

您需要在绘画方法中为您的背景颜色填充画布。类似于以下内容:

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

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

于 2010-05-14T00:57:22.913 回答
2

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

设置组件的大小没有任何作用。布局管理器将覆盖大小。您应该设置首选大小或覆盖 getPreferredSize() 方法。

阅读Swing 教程以了解 Swing 基础知识。有关于“自定义绘画”和“使用布局管理器”的部分。

于 2010-05-14T01:37:57.317 回答