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 originalpublic void run() {
while (true) {
jProgressBar1.setValue((int) h1.damePorcentaje());
jLabel2.setText("" + (int) h1.damePorcentaje() + "%");
Real=(int) (410 * (h1.damePorcentaje()/100));
y1=410-Real;
g.drawLine(x1, y1, x1, y1);
jLabel30.setText("" + h1.dameRAM() + "%");
jProgressBar2.setValue( h1.dameRAM());
jLabel31.setText("" + h1.dameSwap() + "%");
jProgressBar3.setValue( h1.dameSwap());
try {
this.sleep(500);
Logger.getLogger(FraCPU.class.getName()).log(Level.SEVERE, null, ex);
}
jProgressBar1.setValue((int) h1.damePorcentaje());
jLabel2.setText("" + (int) h1.damePorcentaje() + "%");
Real=(int) (410 * (h1.damePorcentaje()/100));
y2=410-Real;
g.drawLine(x1, y1, x2, y2);
}
}