2012-05-26 101 views
1

我有一个是这样的代码:如何在恢复代码之前等待setIcon()方法执行?

jLabel.setIcon(map); 
Graphics2D g = (Graphics2D) jLabel.getGraphics(); 
g.drawPolygon(xpoints,ypoints,vpolygonpointsarray.length); 

但是,什么情况是,多边形先绘制的标签图标更新之前。我怀疑设置一个图标会创建一个新线程。我想等到代码的其余部分执行之前设置图标。我会怎么做?

+0

设置图标绝对不会创建新线程。重新绘制事件计划在稍后,但是,这可能会导致您的问题。真正的教程链接@vizier下面添加。 – wolfcastle

回答

6

您应该使用重写绘画方法(paint()paintComponents()等)来执行自定义绘画代码。请点击此处:http://docs.oracle.com/javase/tutorial/uiswing/painting/step2.html

+1

在这种情况下,标志与等待方法结束无关。您处于代码的单个线程部分。问题是这样的:你在组件图形上绘制,但是当swing尝试重新绘制组件时,它会调用update/paint方法,这些方法只会描绘你所做的事情。出于这个原因,我们重写paint方法,并确保每次swing重绘组件时都会自定义绘画。 –

相关问题