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是我从不同的班级获得的变量。当我指定值时,它工作正常,但是当我使用变量时,它不起作用。
程序打开时:
调整图像大小(正常工作)时:
感谢。
答案 0 :(得分:1)
之前我遇到过这样的问题。我的猜测是变量f是一个尚未初始化的类的成员,EDT在变量初始化之前绘制,当你调整大小(导致重绘)时,变量现在被初始化并且所有内容都被正确绘制。这是一种竞赛条件。
很容易验证这个猜测是在方法中添加println(f)
,以查看第一次绘画时f的值是多少以及f调整大小时的值。