"m_Frame.add(chartPanel); m_Frame.validate()" 和 "m_Frame.add(chartPanel).validate();" 使用 jfreechart 的区别
Difference between "m_Frame.add(chartPanel); m_Frame.validate()" and "m_Frame.add(chartPanel).validate();" using jfreechart
我正在将 Eclipse RCP 应用程序从 Eclipse 3.0 迁移到 4.4,我有一个 class,我在其中创建了一个 java.awt.Frame m_Frame
和一个 ChartPanel chartPanel
使用jfreechart (jfreechart-1.0.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
解决方案是使用方法 doLayout()
而不是 validate()
,效果很好。
我正在将 Eclipse RCP 应用程序从 Eclipse 3.0 迁移到 4.4,我有一个 class,我在其中创建了一个 java.awt.Frame m_Frame
和一个 ChartPanel chartPanel
使用jfreechart (jfreechart-1.0.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
解决方案是使用方法 doLayout()
而不是 validate()
,效果很好。