我有一个是这样的代码:如何在恢复代码之前等待setIcon()方法执行?
jLabel.setIcon(map);
Graphics2D g = (Graphics2D) jLabel.getGraphics();
g.drawPolygon(xpoints,ypoints,vpolygonpointsarray.length);
但是,什么情况是,多边形先绘制的标签图标更新之前。我怀疑设置一个图标会创建一个新线程。我想等到代码的其余部分执行之前设置图标。我会怎么做?
我有一个是这样的代码:如何在恢复代码之前等待setIcon()方法执行?
jLabel.setIcon(map);
Graphics2D g = (Graphics2D) jLabel.getGraphics();
g.drawPolygon(xpoints,ypoints,vpolygonpointsarray.length);
但是,什么情况是,多边形先绘制的标签图标更新之前。我怀疑设置一个图标会创建一个新线程。我想等到代码的其余部分执行之前设置图标。我会怎么做?
您应该使用重写绘画方法(paint()
,paintComponents()
等)来执行自定义绘画代码。请点击此处:http://docs.oracle.com/javase/tutorial/uiswing/painting/step2.html
在这种情况下,标志与等待方法结束无关。您处于代码的单个线程部分。问题是这样的:你在组件图形上绘制,但是当swing尝试重新绘制组件时,它会调用update/paint方法,这些方法只会描绘你所做的事情。出于这个原因,我们重写paint方法,并确保每次swing重绘组件时都会自定义绘画。 –
设置图标绝对不会创建新线程。重新绘制事件计划在稍后,但是,这可能会导致您的问题。真正的教程链接@vizier下面添加。 – wolfcastle