Java JfreeChart在单击之前不显示

Java JfreeChart在单击之前不显示,java,jfreechart,Java,Jfreechart,我已经建立了一个显示选项卡面板。在此阶段不显示图表。当我单击按钮时,我会生成一个新图表并将其添加到面板中。但什么也没发生。我必须点击面板才能最终显示图表 因此,我在包含ChartPanel但没有效果的TabPanel上放置了一个repaint()。我是不是遗漏了什么 if(myChart==null){ myChart = new PortfolioChart(portfolioModel.getDataMatrix()); add

我已经建立了一个显示选项卡面板。在此阶段不显示图表。当我单击按钮时,我会生成一个新图表并将其添加到面板中。但什么也没发生。我必须点击面板才能最终显示图表

因此,我在包含ChartPanel但没有效果的TabPanel上放置了一个repaint()。我是不是遗漏了什么

        if(myChart==null){
            myChart = new PortfolioChart(portfolioModel.getDataMatrix());
            add(myChart.createPanel(), BorderLayout.CENTER);
            repaint();
        }else{
            myChart.setPortfolio(portfolioModel.getDataMatrix());
            myChart.updateDataSet();

        }   

可能我应该将repaint()指令放在不同的地方?

在所示的完整示例中,每个选项卡都有一个
图表面板。不是替换图表,而是定期更新每个图表的数据模型,侦听图表会重新绘制自己作为响应


有时无效();重新油漆();作品如果ChartPanel仍然不起作用,请尝试将这些方法调用到ChartPanel。也请仔细检查您是否从EDT执行此操作。不幸的是,它仍然不适用于我。我发现的唯一解决方案是模拟数据集的更新。我的结构与您的结构几乎相同。。。但是,我只在按下按钮时添加图表。在您的算法中,所有图表都是在Pack()指令之前生成的。问题可能就在那里。当按下按钮时,我的“添加”按钮会在
pack()
之后添加一个新图表;您不必
重新验证()。