How to code a time delay between plotting points in JFreeCharts?

Posted by Javajava on Stack Overflow See other posts from Stack Overflow or by Javajava
Published on 2010-05-27T18:46:06Z Indexed on 2010/05/27 18:51 UTC
Read the original article Hit count: 260

Filed under:
|
|

Is there a way to animate the plotting process of an xy-line chart using JFreeCharts? I want to be able to watch the program draw each line segment and connect them.

For example, if I paste this into the TextArea, "gtgtaaacaatatatggcg," I want to watch it graph each line segment one by one.

Thanks in advance! :)

My code is below:

import java.util.Scanner;
import java.applet.Applet;
import java.awt.;
import java.awt.event.ActionListener;
import java.awt.event.ActionEvent;
import org.jfree.chart.;
import org.jfree.chart.plot.PlotOrientation;
import org.jfree.data.xy.*;

public class RandomWalkComplete extends Applet implements ActionListener { Panel panel; TextArea textarea, outputArea; Button move,exit; String thetext; Scanner reader = new Scanner(System.in); String thetext2; Label instructions;

 int x,y;

public void init() 
{
    setSize(500,250); //set size of applet

instructions=new Label("Paste the gene sequences in the " + "text field and press the graph button."); add(instructions);

    panel = new Panel();
    add(panel);
    setVisible(true);
    textarea= new TextArea(10,20);
    add(textarea);

    move=new Button("Graph");
    move.addActionListener(this);
    add(move);

    exit=new Button("Exit");
    exit.addActionListener(this);
    add(exit);
}

public void actionPerformed(ActionEvent e)
{
    XYSeries series = new XYSeries("DNA Walk",false,true);

    x= 0; y = 0;
    series.add(x,y);

    if(e.getSource() == move)
    {
        thetext=textarea.getText(); //the text is the DNA bases pasted
        thetext=thetext.replaceAll(" ",""); //removes spaces
        thetext2 = "";

        for(int i=0; i<thetext.length(); i++)
       {
        char a = thetext.charAt(i);

        switch (a)
        {
            case 'A': case 'a'://moves right
               x+=1; y+=0;
               series.add(x,y);
                break;

            case 'C': case 'c': //moves up
              x+=0; y+=1;
              series.add(x,y);
                break;

            case 'G': case 'g': //move left
              x-=1; y+=0;
              series.add(x,y);
                break;

            case 'T': case 't'://move down
              x+=0; y-=1;
              series.add(x,y);
                break;

            default: // series.add(0,0);
                break;
        }
        }                       
    XYDataset xyDataset = new XYSeriesCollection(series);

JFreeChart chart = ChartFactory.createXYLineChart ("DNA Random Walk", "", "", xyDataset, PlotOrientation.VERTICAL, true, true, false); ChartFrame frame1=new ChartFrame("DNA Random Walk",chart); frame1.setVisible(true); frame1.setSize(300,300);
}
if(e.getSource()==exit) {System.exit(0);}
} public void stop(){} }

© Stack Overflow or respective owner

Related posts about java

Related posts about plot