SwingWork - Netbeans - Java

0 respostas
netbeansswingprogramaçãojava
R

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() {

<a class="mention" href="/u/override">@Override</a>

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() {

<a class="mention" href="/u/override">@Override</a>

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();

}

}
Criado 29 de novembro de 2019
Respostas 0
Participantes 1