JFrame - 在调整窗口大小之前,内容无法正确显示

时间:2013-09-09 10:54:05

标签: java swing jframe

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是我从不同的班级获得的变量。当我指定值时,它工作正常,但是当我使用变量时,它不起作用。

程序打开时:

enter image description here

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

enter image description here

感谢。

1 个答案:

答案 0 :(得分:1)

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

很容易验证这个猜测是在方法中添加println(f),以查看第一次绘画时f的值是多少以及f调整大小时的值。