Estou com um problema no meu codigo, o qual quando estou tentando encerrar o codigo com a opção 3, para mostrar meus sensores no JFrame e encerrar o aplicativo. Quando coloco 3 ele mostra todos os sensores mas não encerra.
Será que alguem poderia me ajudar?
package Exercicio1;
import java.awt.Graphics;
import java.util.Vector;
import javax.swing.JFrame;
import javax.swing.JOptionPane;
public class Exercicio1 extends JFrame {
private static final long serialVersionUID = 1L;
static VectorListaSensores = new Vector();
public static void main(String[] args) {
new Exercicio1();
}
public Exercicio1() {
setSize(800,400);
setLocationRelativeTo(null);
setDefaultCloseOperation(EXIT_ON_CLOSE);
setVisible(true);
}
public void paint(Graphics g) {
int op = 0,cont = 0;
while (op!=3 || cont<20) {
op = Integer.parseInt(JOptionPane.showInputDialog("1-Inserir um nó do tipo Telos\n2-Inserir um nó do tipo Mica\n3-Exibir a rede e sair"));
switch (op) {
case 1: {
cadastraTelos();
cont++;
break;
}
case 2: {
cadastraMica();
cont++;
break;
}
case 3: {
for (int i = 0; i < ListaSensores.size(); i++) {
g.drawOval(ListaSensores.get(i).getX(),ListaSensores.get(i).getY(), 50, 50);
g.drawString(ListaSensores.get(i).getId(), ListaSensores.get(i).getX(),ListaSensores.get(i).getY());
}
break;
}
}
}
}
public static void cadastraTelos() {
Telos entrada = new Telos(0, 0, null, 0);
entrada.setId(JOptionPane.showInputDialog("Digite o nome do sensor"));
entrada.setX(Integer.parseInt(JOptionPane.showInputDialog("Digite o ponto X do sensor")));
entrada.setY(Integer.parseInt(JOptionPane.showInputDialog("Digite o ponto Y do sensor")));
entrada.setTempsensor(Integer.parseInt(JOptionPane.showInputDialog("Digite o tempo do sensor")));
ListaSensores.add(entrada);
}
public static void cadastraMica() {
Mica entrada = new Mica(0, 0, null, 0);
entrada.setId(JOptionPane.showInputDialog("Digite o nome do sensor"));
entrada.setX(Integer.parseInt(JOptionPane.showInputDialog("Digite o ponto X do sensor")));
entrada.setY(Integer.parseInt(JOptionPane.showInputDialog("Digite o ponto Y do sensor")));
entrada.setRuidosensor(Integer.parseInt(JOptionPane.showInputDialog("Digite o ruido do sensor")));
ListaSensores.add(entrada);
}
}
Classe NoSensor
package Exercicio1;
public class NoSensor {
private int x;
private int y;
private String id;
public NoSensor(int x, int y, String id) {
super();
this.x = x;
this.y = y;
this.id = id;
}
public int getX() {
return x;
}
public void setX(int x) {
this.x = x;
}
public int getY() {
return y;
}
public void setY(int y) {
this.y = y;
}
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
}
Classe Telos
package Exercicio1;
public class Telos extends NoSensor{
private int tempsensor;
public Telos(int x, int y, String id, int tempsensor) {
super(x, y, id);
this.tempsensor = tempsensor;
}
public int getTempsensor() {
return tempsensor;
}
public void setTempsensor(int tempsensor) {
this.tempsensor = tempsensor;
}
}
Classe Mica
package Exercicio1;
public class Mica extends NoSensor {
private int ruidosensor;
public Mica(int x, int y, String id, int ruidosensor) {
super(x, y, id);
this.ruidosensor = ruidosensor;
}
public int getRuidosensor() {
return ruidosensor;
}
public void setRuidosensor(int ruidosensor) {
this.ruidosensor = ruidosensor;
}
}