1

データソースに接続されたGRALチャートがあります。

XYPlot plot = new XYPlot(data);
chartPanel=new InteractivePanel(plot);
LineRenderer lines = new DefaultLineRenderer2D();
plot.setLineRenderer(data, lines);
Color c1 = new Color(0.0f, 0.3f, 1.0f); 
plot.getLineRenderer(zl).setSetting(LineRenderer.COLOR, c2);

変数「データ」は時間とともに変化し、このコードは変更後に実行されます。新しいデータでグラフを更新するにはどうすればよいですか?repaint()、revalidate()を試しましたが、効果がありません...

4

3 に答える 3

0

これ以上必要かどうかはわかりませんが、これが私のやり方です:

import de.erichseifert.gral.ui.InteractivePanel;
import java.awt.Component;
import java.awt.Graphics;
import javax.swing.JPanel;

public class PlotFunctions {

    public void AddChartToPanel(InteractivePanel chart, JPanel jPanelChart) {
        // erase panel
        Graphics g = jPanelChart.getGraphics();
        g.dispose();

        jPanelChart.paintComponents(g);
        jPanelChart.removeAll();

        // paint new chart
        chart.setSize(jPanelChart.getWidth(), jPanelChart.getHeight());
        chart.setVisible(true);
        jPanelChart.add(chart);
        jPanelChart.validate();
        jPanelChart.repaint();
    }


    public void Resize(JPanel jPanelChart){
        if (jPanelChart.getComponentCount() > 0) {
            Component c = jPanelChart.getComponent(0);
            c.setSize(jPanelChart.getWidth(), jPanelChart.getHeight());
            jPanelChart.removeAll();
            jPanelChart.add(c);
        }
    }
}

プロットに使用するパネルのサイズ変更機能を使用して、基本的にパネルから画像を削除して新しい寸法で再プロットすることで画像を更新すると、あなたの場合に役立つ場合があります。

于 2013-07-27T15:07:16.560 に答える
0

datacallを更新した後chartPanel.repaint()。うまくいかない場合は、Rick が既に述べたように、 right を変更して rightdataを更新していることを確認してください。chartPanel.repaint()

于 2013-06-21T10:07:40.110 に答える
-1

通常、GRAL のプロットはそれ自体が として登録されるDataListenerため、値がオブジェクトに追加、変更、または削除されると、表示されるプロットは自動的に更新されDataSourceます。バグに遭遇したか、データを変更するコードに問題がある可能性があります。

于 2013-04-29T17:39:37.287 に答える