Foros del Web » Programación para mayores de 30 ;) » Java »

Actualizar Grafico de Barras con Random

Estas en el tema de Actualizar Grafico de Barras con Random en el foro de Java en Foros del Web. Hola, estoy tratando de hacer que mi gráfica se actualice cada ves que sale un nuevo número generado por el random, hasta ahora lo único ...
  #1 (permalink)  
Antiguo 14/06/2012, 07:44
Avatar de Akemi_Nekoeda  
Fecha de Ingreso: junio-2012
Mensajes: 5
Antigüedad: 12 años, 5 meses
Puntos: 0
Actualizar Grafico de Barras con Random

Hola, estoy tratando de hacer que mi gráfica se actualice cada ves que sale un nuevo número generado por el random, hasta ahora lo único que he logrado es actualizarla cada ves que presiono un botón llamado "actualizar" . Me gustaria saber como eliminar dicho botón o hacer que la actualización de la gráfica no dependa del botón.


Código del Panel
Código:
import java.awt.Color;
import java.awt.Dimension;
import java.awt.Frame;
import java.awt.Graphics;
import java.awt.Panel;
import javax.swing.JTabbedPane;

public class GPanel extends Panel{


    public GPanel() {
	setBackground(Color.white);
        this.setMinimumSize(new Dimension(800, 600));
    }

    @Override
    public void paint(Graphics g) {
	g.drawRect(5,
		   5,
		   getWidth()-10,
		   getHeight()-10);
    }

    @Override
    public Dimension getPreferredSize() {
	return new Dimension(160,150);
    }

    public static void main(String[] args) {
	Frame f = new Frame("G");

	GPanel pr1 = new GPanel();
        GPanel pr2 = new GPanel();
        PanelBarra pr3 = new PanelBarra();
        GPanel pr4 = new GPanel ();
	GRandom pr5 = new GRandom();
        

	f.add(pr1,"West");
	f.add(pr2,"East");
	f.add(pr3,"Center");
	f.add(pr4,"North");
        f.add(pr5, "South");
        f.pack();
        f.setVisible(true);

    }

}
Código Random
Código:
import java.applet.*;
import java.awt.Graphics;
import java.util.Random;

 class GRandom extends Applet implements Runnable
{
    static int instan;

	Thread t;
        int i=0;
	boolean suspended;
        Random aleatorio = new Random();

    GRandom()
	{

        suspended=false;
		t=new Thread(this);
		t.start();
	}

	public void run()
	{

		while(true)
		{
	
                        instan= aleatorio.nextInt(100);
                        i++;                      
			repaint();
			
                        try {
				Thread.sleep(10);
                               
			} catch (InterruptedException e) {}
		}
       }
@Override
public void paint(Graphics g)
	{
       
        String Prueba="Dato Instantaneo: "+instan+"         Proceso Numero: "+i;
        
        g.drawString(Prueba,15,10);
      
	}
   
   
 @Override
	public void stop()
	{
		t.stop();
	}
   
}
Código de Gráfico Barras
Código:
import java.awt.BorderLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.image.BufferedImage;
import javax.swing.*;
import org.jfree.chart.ChartFactory;
import org.jfree.chart.JFreeChart;
import org.jfree.chart.plot.PlotOrientation;
import org.jfree.data.category.DefaultCategoryDataset;

public class PanelBarra extends JPanel {

 JFreeChart barra;
 DefaultCategoryDataset datos;
 JLabel grafico;
 JButton b;

 public PanelBarra(){

  datos = new DefaultCategoryDataset();

  b=new JButton("Actualizar");
  b.addActionListener(new ActionListener(){

   @Override
   public void actionPerformed(ActionEvent e) {

    datos.setValue(GRandom.instan, "A", "");
    BufferedImage graficobarra=barra.createBufferedImage(200, 300);
    ImageIcon img=new ImageIcon(graficobarra);
    grafico.setIcon(img);
   }

  });

  datos.addValue(GRandom.instan, "A", "");

  barra = ChartFactory.createBarChart3D("Cola", "Quarters","Sales",datos,PlotOrientation.VERTICAL,true,true,true);

  BufferedImage graficobarra=barra.createBufferedImage(450, 300);
 ImageIcon img=new ImageIcon(graficobarra);
  grafico=new JLabel(img);
  
  JPanel p=new JPanel();
  p.add(b);
  add(grafico);
  add(p,BorderLayout.SOUTH);
 }

}
Si no se entiende la idea no duden en decirme
  #2 (permalink)  
Antiguo 14/06/2012, 07:51
 
Fecha de Ingreso: abril-2011
Mensajes: 1.342
Antigüedad: 13 años, 6 meses
Puntos: 344
Respuesta: Actualizar Grafico de Barras con Random

Buenas,

Utiliza un hilo que se ejecute cada cierto tiempo (lo del tiempo puedes controlarlo con la llamada al método sleep).

Saludos.
  #3 (permalink)  
Antiguo 21/06/2012, 08:34
Avatar de Akemi_Nekoeda  
Fecha de Ingreso: junio-2012
Mensajes: 5
Antigüedad: 12 años, 5 meses
Puntos: 0
Respuesta: Actualizar Grafico de Barras con Random

gracias por responder , pero podrias expplicarme bien como hacerlo? no se como hacer que la grafica ya no dependa del boton para la actualizacion de datos

Etiquetas: barras, random, string
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 16:11.