Boa Tarde!
Preciso de uma ajuda.
Estou desenvolvendo um programa onde envolve rotas, diante disso eu consegui passar pra um .txt as longitude e latitude de todas as cidades, e isso me gerou um arquivo com 5565 linhas com 4 collunas.
É um trabalho pra faculdade e preciso usar Thread mas descobri que se eu gerar um Thread pelo frame do swing ele não vai conseguir lidar com tantos dados de uma maneira funcional,.
Descobri o swingWorker mas estou tendo grande dificuldade para implementar no código, e preciso que faça essa leitura pois eu irei pegar esse valores processados pela Thread e jogar em um combobox, que ira funcionar como filtro de acordo
com a escolha do usuário, abaixo estará meu código com a Thread padrão, que não está funcional.
public void carregarDados() throws Exception {
BufferedReader reader = new BufferedReader(new FileReader(nomeDoArquivo));
dados = new String[5565][4];
Thread pacoca = new Thread() {
try {
BufferedReader reader = new BufferedReader(new FileReader(nomeDoArquivo))
String linha;
dados = new String[5565][4];
int cont = 0;
while ((linha = reader.readLine()) != null) {
String[] partes = linha.split("/");
for (int i = 0; i < 4; i++) {
dados[cont][i] = partes[i];
}
cont++;
}
} catch(Exception e) {
throw new Exception(e.getMessage());
}
}.start();
Thread thread1 = new Thread() {
@Override
public void run() {
try {
String linha;
dados = new String[5565][4];
int cont = 0;
while ((linha = reader.readLine()) != null) {
String[] partes = linha.split("/");
for (int i = 0; i < 4; i++) {
dados[cont][i] = partes[i];
}
cont++;
}
} catch (Exception e) {
System.out.println(e.getMessage());
}
}
};
thread1.start();
Thread thread2 = new Thread() {
@Override
public void run() {
try {
String linha;
int cont = 0;
while ((linha = reader.readLine()) != null) {
if (cont < 2701) {
} else {
String[] partes = linha.split("/");
for (int i = 0; i < 4; i++) {
dados[cont][i] = partes[i];
}
cont++;
}
}
} catch (Exception e) {
System.out.println(e.getMessage());
}
}
};
thread2.start();
thread1.join();
thread2.join();
}
}