Ver Mensaje Individual
  #1 (permalink)  
Antiguo 02/03/2011, 11:57
Slithice
 
Fecha de Ingreso: marzo-2011
Mensajes: 33
Antigüedad: 13 años, 11 meses
Puntos: 0
Actualizar una gráfica.

Buenas tardes. Estoy trabajando en un proyecto y he estado haciendo un programa de gestión del procesador. A partir del fichero "/proc/stat" puedo obtener unos datos para aplicar una fórmula y deducir de ahí el porcentaje de CPU utilizado en cada momento.

Ese dato lo utilizo para pintar una gráfica dentro de un panel conforme pasan los segundos, el problema que tengo es que cuando se pinta la gráfica y no queda "más panel" ya no pinta más. Mi idea es que la gráfica se actualice cuando llegue al final del panel o bien se vaya moviendo desde el principio hacia adelante.

Trabajo en "Ubuntu", si deseáis ver la gráfica tal como yo la intento hacer, solo debéis ir a: "Sistema->Administración->Monitor del Sistema". Ahí, en la pestaña "recursos" podéis ver 3 gráficas y como se actualizan aunque lleguen al final del panel. Ahora paso a poner mi gráfica para que veáis la diferencia y podáis aconsejarme. Por cierto, mi gráfica es totalmente manual y no muy buena, pero lo importante es aprender.

http://www.subirimagenes.com/imagen-grafica-6043562.html

Como podéis apreciar, la gráfica es distinta, ya que el tiempo está al revés y no va hacia delante la gráfica, sino que el primer instante queda al principio para siempre.

Este es mi código (Sólo para dibujar la gráfica): Suponed que todas las variables ya están creadas.

Código Java:
Ver original
  1. public void run() {
  2.             while (true) {
  3.                 jProgressBar1.setValue((int) h1.damePorcentaje());
  4.                 jLabel2.setText("" + (int) h1.damePorcentaje() + "%");
  5.                 Real=(int) (410 * (h1.damePorcentaje()/100));
  6.                 x1=Time/100;
  7.                 y1=410-Real;
  8.                 g.drawLine(x1, y1, x1, y1);
  9.                 Time=Time+Tiempo;
  10.                 jLabel30.setText("" + h1.dameRAM() + "%");
  11.                 jProgressBar2.setValue( h1.dameRAM());
  12.                 jLabel31.setText("" + h1.dameSwap() + "%");
  13.                 jProgressBar3.setValue( h1.dameSwap());
  14.                 try {
  15.                     this.sleep(500);
  16.                 } catch (InterruptedException ex) {
  17.                     Logger.getLogger(FraCPU.class.getName()).log(Level.SEVERE, null, ex);
  18.                 }
  19.                 jProgressBar1.setValue((int) h1.damePorcentaje());
  20.                 jLabel2.setText("" + (int) h1.damePorcentaje() + "%");
  21.                 Real=(int) (410 * (h1.damePorcentaje()/100));
  22.                 x2=Time/100;
  23.                 y2=410-Real;
  24.                 g.drawLine(x1, y1, x2, y2);
  25.                 Time=Time+Tiempo;
  26.  
  27.             }
  28.         }

Última edición por Slithice; 02/03/2011 a las 12:02