Bom dia galera.. estou com um problema aqui, e gostaria de saber se vocês podem me ajudar..
É o seguinte.. criei uma Jtable com 2 campos que contem NOME e LOGIN, essa Jtable lista todos meus clientes.. e quando dou um duplo clique em determinada linha,
abre uma outra tela..grava o login do cliente clicado em um arrayList e caso o cliente tente abrir a mesma tela de novo ele não deixa.. porem estou tentanto FAZER O SEGUINTE,
quando o cliente FECHAR a tela com um windowsListener verifico se o login do cliente está no arrayList e removo o mesmo..
Porem das duas formas que vou colocar aqui não consegui resolver o problema.. dei uma pesquisada em formas de remoção de ArrayList e nada parecido com o meu problema.
private ArrayList<String> cliente;
public construtor {
cliente = TestJTable_CLient.getCliente();
}
@Override
public void windowOpened(WindowEvent arg0) {
abriu = true;
System.out.println("A janela abriu !");
LoadingScreen();
}
@Override
public void windowClosing(WindowEvent arg0) {
if (!abriu == false) {
for (String clientes : cliente) {
// nesse caso se eu utilizar (clientes) dá erro, o eclipse dá essa exeption
//Exception in thread "AWT-EventQueue-0" java.util.ConcurrentModificationException
// o erro sempre dá na linha 124 que é for (String clientes : cliente) {
// se caso eu mudo de clientes PARA (cliente) ele não da exeption..removo o cliente mais só funciona se eu abrir apenas 1 mais de 1 ele da exeption.
if (clientes.contains(TestJTable_CLient.getLogin())) {
// Removo login do cliente assim que ele fecha a
// janela
TestJTable_CLient.getCliente().remove(
TestJTable_CLient.getLogin());
System.out.println("Login: "
+ TestJTable_CLient.getLogin()
+ " Removido!");
}
}
}
}
-------------------------------------------------------------------------------------------
// Nesse caso acontece que se eu abrir apenas 1 e tentar fecha-lo o eclipse da exeption
//Exception in thread "AWT-EventQueue-0" java.util.ConcurrentModificationException
// o erro sempre dá na linha 128 que é a linha do if (it.next().equals(TestJTable_CLient.getLogin())) {
@Override
public void windowClosing(WindowEvent arg0) {
if (!abriu == false) {
Iterator<?> it = cliente.iterator();
while (it.hasNext()) {
if (it.next().equals(TestJTable_CLient.getLogin())) {
// Removo login do cliente assim que ele fecha a
// janela
TestJTable_CLient.getCliente().remove(
TestJTable_CLient.getLogin());
System.out.println("Login: "
+ TestJTable_CLient.getLogin() + " Removido!");
}
}
}
}
os resultados que já obitivo foram:
quando abro apenas 1 cliente e FECHO remove normalmente..
quando abro mais de 1 cliente e FECHO ele da erro.