He estado mirando lo que me has dicho y la verdad que es más complejo de lo que yo creía, así que tardaré algo hasta volver a hablar de la gráfica. No obstante, hay algunas otras cosas de mi programa que me fallan, así que trataré de explicarlo. La duda que tengo está en mi "HILO", pero os dejo el código entero por si a alguien le interesa observar todo el programa y se lo ocurre algo para mi gráfica.
EDITO: No puedo poner mi frame, es demasiado largo incluso partiéndolo, así que mejor nos centramos en este problemilla absurdo que me deja un poco despistado.
Este es mi proyecto, no hago nada porque no es necesario.
Código Java:
Ver originalpackage computerprou;
public class CPUProject{
public static void main
(String[] args
) { // TODO code application logic here
}
}
Este es mi Frame:
[HIGHLIGHT="Java"]package computerprou;
import java.awt.Color;
import java.awt.Graphics;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.swing.JPanel;
import javax.swing.JTextField;
Y este es mi Hilo:
Código Java:
Ver originalpackage computerprou;
import java.io.BufferedReader;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.IOException;
import java.util.logging.Level;
import java.util.logging.Logger;
public class HiloCPU
extends Thread { int Numero1;
int Numero2;
int Numero3;
int Numero4;
int Numero11;
int Numero21;
int Numero31;
int Numero41;
int Ram;
int RamUtilizada;
int RamLibre;
int RamTotal;
int Tiempo;
int CCT0;
int CCT1;
int UCT0;
int UCT1;
float Porcentaje;
int SwapLibre;
int SwapTotal;
int SwapUsada;
int Swap;
int Horas;
int Minutos;
int Segundos;
int Timm;
float damePorcentaje(){
return Porcentaje;
}
int dameSwap(){
try {
}
try {
BuffRead3.readLine();
BuffRead3.readLine();
BuffRead3.readLine();
BuffRead3.readLine();
BuffRead3.readLine();
BuffRead3.readLine();
BuffRead3.readLine();
BuffRead3.readLine();
BuffRead3.readLine();
BuffRead3.readLine();
BuffRead3.readLine();
BuffRead3.readLine();
BuffRead3.readLine();
Linea = BuffRead3.readLine();
num = Linea.split("\\s+");
SwapTotal
= Integer.
parseInt(num
[1]); Linea = BuffRead3.readLine();
num = Linea.split("\\s+");
SwapLibre
= Integer.
parseInt(num
[1]); SwapUsada=SwapTotal-SwapLibre;
Swap = (SwapUsada*100)/SwapTotal;
Logger.getLogger(HiloCPU.class.getName()).log(Level.SEVERE, null, ex);
}
return Swap;
}
try {
}
try {
Linea = BuffRead3.readLine();
num = Linea.split("\\s+");
if (Timm>=3600){
Horas=Timm/60;
}
}
return Encendido;
}
int dameRAM(){
try {
}
try {
Linea = BuffRead3.readLine();
num = Linea.split("\\s+");
RamTotal
= Integer.
parseInt(num
[1]); Linea = BuffRead3.readLine();
num = Linea.split("\\s+");
RamLibre
= Integer.
parseInt(num
[1]); RamUtilizada=RamTotal-RamLibre;
Ram = (RamUtilizada*100)/RamTotal;
Logger.getLogger(HiloCPU.class.getName()).log(Level.SEVERE, null, ex);
}
return Ram;
}
HiloCPU(int t){
Tiempo=t;
}
public void run(){
while(true){
try {
try {
Linea = BuffRead1.readLine();
num = Linea.split(" ");
Numero1
= Integer.
parseInt(num
[2]); Numero2
= Integer.
parseInt(num
[3]); Numero3
= Integer.
parseInt(num
[4]); Numero4
= Integer.
parseInt(num
[5]); CCT0 = Numero1 + Numero2 + Numero3;
UCT0 = CCT0 + Numero4;
Linea = BuffRead2.readLine();
num = Linea.split(" ");
Numero11
= Integer.
parseInt(num
[2]); Numero21
= Integer.
parseInt(num
[3]); Numero31
= Integer.
parseInt(num
[4]); Numero41
= Integer.
parseInt(num
[5]); CCT1 = Numero11 + Numero21 + Numero31;
UCT1 = CCT1 + Numero41;
Porcentaje = (((float) CCT1 - (float) CCT0) / ((float) UCT1 - (float) UCT0)) * 100f;
TiempoEncendido();
FicRead2.close();
FicRead1.close();
}
Logger.getLogger(HiloCPU.class.getName()).log(Level.SEVERE, null,ex);
} finally {
try {
FicRead2.close();
Logger.getLogger(HiloCPU.class.getName()).log(Level.SEVERE, null, ex);
}
}
}
}
}
El hilo es del que tengo dudas.
Cuando ejecuto el programa y le doy a empezar, ocurre una excepción en el método "String TiempoEncendido". Cuando capturo el tiempo que lleva encendido el ordenador me da una excepción, cosa que no tiene sentido. Esta excepción desaparece cuando comento la línea de código siguiente:
La excepción es la siguiente: "java.lang.NumberFormatException: For input string: '1700.43'".
El número es el tiempo en segundos que lleva encendido el ordenador. He probado a poner Timm como "float" en lugar de "int", pero el problema persiste.