Java - Como detener un while infinito

 
Vista:

Como detener un while infinito

Publicado por Martin de Urtiaga (1 intervención) el 29/12/2018 12:44:42
Hola buenos días. Les escribo para realizar una consulta.
Primero quiero aclarar que no tengo mucha experiencia programando, y lo que he hecho me ha costado.
Trabajo para una empresa de Internet y estoy haciendo un programa para monitoreo de la red, que haga ping, y que grafique en un jpanel un rectángulo verde si esa IP es alcanzable y que grafique uno rojo si esa IP esta no alcanzable.
El programa estoy haciéndolo en Java Netbeans
el tema es que no son ni 10 ni 20 gráficos, son mucho mas, serán unos 100, o 150 por programa que hago. este es el código que voy copiando, pegando y editando para hacer referencia al jpanel.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
int v = 2;
while(v > 1){
 
InetAddress variable1;
try {
variable1= InetAddress.getByName("ip.ip.ip.ip");
if(variable1.isReachable(400)){
Graphics g = jpanel1.getGraphics();
g.setColor(Color.green);
g.fillRect(0, 0, 500, 500);
}
else {
Graphics g = jpanel1.getGraphics();
g.setColor(Color.red);
g.fillRect(0, 0, 500, 500);
}
} catch (IOException ex) { System.out.println(ex); }
 
v = v + 1;
}

dentro del mismo While voy repitiendo el código para poder hacer todos los gráficos que necesito.
El programa funciona realmente muy bien, y es justo lo que necesito. Realmente el único problema es que obviamente no puedo detener el proceso, si no desde el administrador de tareas matando el proceso.
Ya he colocado otro botón que diga cerrar, y he intentado algunas cosas, pero cuando el while esta en funcionamiento, el programa no me deja apretar ningún otro botón.
Agradecería mucho que puedan orientarme hacia la solución de este problema para poder poner un botón que cierre el programa, o que detenga el while. Muchas Gracias
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Kabuto
Val: 3.428
Oro
Ha mantenido su posición en Java (en relación al último mes)
Gráfica de Java

Como detener un while infinito

Publicado por Kabuto (1381 intervenciones) el 29/12/2018 23:53:33
Pero.. ¿antes de lanzar la ejecución del programa puedes saber de antemano cuantos gráficos vas a necesitar en ese momento?

Si es así, tienes que trasladarselo al programa, para usarlo como condición en el while()

Algo así:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
int graficosNecesarios = 100; // o 150, 200... los que se necesite...
int contador = 0;
 
while (contador < graficosNecesarios) {
 
    InetAddress variable1;
    try {
        variable1= InetAddress.getByName("ip.ip.ip.ip");
        if(variable1.isReachable(400)){
            Graphics g = jpanel1.getGraphics();
            g.setColor(Color.green);
            g.fillRect(0, 0, 500, 500);
        }
        else {
            Graphics g = jpanel1.getGraphics();
            g.setColor(Color.red);
            g.fillRect(0, 0, 500, 500);
        }
    } catch (IOException ex) { System.out.println(ex); }
 
    contador++;
}
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar