Modyfikacja zmiennych wykresu jfreechart - jak to zrobić

0

Cześć wam,
chciałem się trochę pobawić wykresami w jfreechart więc przepisałem kod i dopasowałem go do swoich potrzeb.(oczywiście dodałem bibliotekę do NetBeans'a)
Moja potrzeba jest taka żeby wpisywać do pól współrzędne wykresu i na bieżąco je zmieniać.
Aplikacja ogólnie działa - komponenty są na panelu i jest OK ale zmiana wartości nie działa. Czy jest to w ogóle możliwe ?
Jeśli tak to jak ?
Będę wdzięczny za odpowiedzi.
Najlepiej jasny kawałek potrzebnego kodu : )


import java.awt.event.*;
import javax.swing.*;
import javax.swing.SwingUtilities;
import org.jfree.chart.ChartFactory;
import org.jfree.chart.ChartPanel;
import org.jfree.chart.JFreeChart;
import org.jfree.chart.plot.PlotOrientation;
import org.jfree.data.xy.XYDataset;
import org.jfree.data.xy.XYSeries;
import org.jfree.data.xy.XYSeriesCollection;
import org.jfree.ui.ApplicationFrame;
import org.jfree.ui.RefineryUtilities;

public class Chart extends ApplicationFrame implements ActionListener{
    
    JButton b = new JButton("wpisz");
    
    JTextField px = new JTextField(10);
    JTextField py = new JTextField(10);
    
    XYDataset dataset;
    
    float x,y;

    public Chart(String title) {
	super(title);
	
	dataset = createDataset();
	JFreeChart chart = createChart(dataset);

	ChartPanel chartPanel = new ChartPanel(chart);
	chartPanel.add(b);
        b.addActionListener(this);
	chartPanel.add(px);
	chartPanel.add(py);

	chartPanel.setPreferredSize(new java.awt.Dimension(750, 400));
	setContentPane(chartPanel);
    }
    
    @Override
    public void actionPerformed(ActionEvent e){
	Object src = e.getSource();
	if(src==b){
	    x = Float.parseFloat(px.getText());
	    y = Float.parseFloat(py.getText());
// tu nie wiem co wpisać aby się przeładowało czy co ...?
	}
    }

    public XYDataset createDataset() {
	XYSeries series1 = new XYSeries("First");
	series1.add(x, y);  // te zmienne chcę modyfikować
	series1.add(3.0, 3.0);
	series1.add(4.0, 5.0);
	series1.add(5.0, 5.0);
	series1.add(6.0, 7.0);
	series1.add(7.0, 7.0);
	series1.add(8.0, 8.0);
	
	XYSeriesCollection dataset = new XYSeriesCollection();
	dataset.addSeries(series1);
	return dataset;
    }

    private JFreeChart createChart(XYDataset dataset) {
// create the chart...
	JFreeChart chart = ChartFactory.createXYLineChart(
		"   ", // chart title
		"wymiar X", // x axis label
		"wymiar Y", // y axis label
		dataset, // data
		PlotOrientation.VERTICAL,
		true, // include legend
		true, // tooltips
		false // urls
		);

	return chart;
    }

    public static void main(String[] args) {
	SwingUtilities.invokeLater(new Runnable() {

	    @Override
	    public void run() {
		Chart demo = new Chart("Line Chart Demo 2");
		demo.pack();
		RefineryUtilities.centerFrameOnScreen(demo);
		demo.setVisible(true);
		demo.setDefaultCloseOperation(3);
	    }
	});
    }
} 

EDIT: Znalazłem w dokumentacji ChangeListener'y ale nie wiem jakiego użyć biorę ChangeListener ale nie mogę dodać do buttona bo fixuje na słowie 'this'.

Dobra - na pewno nie wiem jak to zrobić - gubie się w tych changeListener'ach ....
pomocy_

0

nikt sobie nie poradził ze zmianą warośći przy add.series? tez mam z tym porblem a chcialbym z petli wczytac wartosci tablicy i indexy tej tablicy zeby utworzylo mi wykres x to index tablicy a y to jej zawartosc

1 użytkowników online, w tym zalogowanych: 0, gości: 1