Graphics2D g4 = (Graphics2D) g.create();
g4.setColor(Color.BLUE);
g4.fillRect(180,500,45,-f);
g4.setFont (new Font("purisa", Font.PLAIN, 18));
g4.drawString("<$20", 180,520);


你好

上面是我用来填充矩形的代码。 F是我从另一个类获得的变量。当我指定值时,它工作正常,但是当我使用变量时,它不起作用。

打开程序时:



调整图像大小(正常工作)时:



谢谢。

最佳答案

我以前遇到过这样的问题。我的猜测是变量f是尚未初始化的类的成员,EDT在变量初始化之前绘制,并且当您调整大小(引起重新绘制)时,变量现在被初始化,并且所有内容均正确绘制。这是一种竞争条件。

验证此猜测的一个非常容易的方法是在方法中添加println(f),以查看首次绘画时f的值是什么,以及调整大小时f的值是什么。

08-06 03:15