我有一个自定义的JPanel,有时在程序中需要调用一个方法来将屏幕涂黑,仅此而已。
public void clearScreen() {
Graphics g = getGraphics();
g.setColor(Color.black);
g.fillRect(0,0,getWidth(),getHeight());
}
当我启动程序时,我调用这个方法。然而,有时它有效,有时无效,这非常奇怪。我还发现,当它无效时,图形对象不是null,并且宽度和高度也已正确定义(通过getWidth()和getHeight())。为什么有时会有效,有时会无效呢?在程序中某个点上,制作自定义绘图的正确方式是什么?像我现在这样使用getGraphics()是正确的吗?我的JPanel(在某些情况下)具有JComponents,但稍后我会删除这些JComponents并进行一些自定义图形绘制。为什么这有时只有部分有效?