" m_Frame.add(chartPanel)之间的差异; m_Frame.validate()"和" m_Frame.add(chartPanel).validate();"使用jfreechart

时间:2015-11-04 13:49:57

标签: java eclipse-rcp jfreechart order-of-execution

我正在将Eclipse RCP应用程序从Eclipse 3.0迁移到4.4,我有一个类,我使用jfreechart(jfreechart-1.0)创建了一个java.awt.Frame m_Frame和一个ChartPanel chartPanel。 15.jar,jcommom-1.0.18.jar)。

代码最初看起来像这样:

...

m_Frame.add(chartPanel);
m_Frame.validate();

在Eclipse RCP 3.0中,这没有问题。现在,如果我想创建一个图表,应用程序就会卡住。

但如果我改成它:

...
m_Frame.add(chartPanel).validate();

它工作正常。在添加ChartPanel之前,我完全放弃了验证或验证m_Frame,或者使用doLayout()它可以正常工作。

有人可以解释这两种方法之间的区别吗?

我正在使用Eclipse RCP 4.4和JDK 1.8.0_60

1 个答案:

答案 0 :(得分:0)

解决方案是使用方法doLayout()而不是validate(),这样就完成了工作。