Login Registre-se
SwingWork  XML
Índice dos Fóruns » Interface Gráfica
Autor Mensagem
RaphaZ99

JavaC Membro

Membro desde: 28/11/2019 14:26:14
Mensagens: 1
Offline

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 lunas.
É 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 JCOMBOX, 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 {

//TUDO COMENTADO É PARTE DO THREAD
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();
}
}

Esta mensagem foi editada 1 vez. Última atualização foi em 29/11/2019 16:58:31

 
Índice dos Fóruns » Interface Gráfica
Ir para:   
Powered by JForum 2.1.9 © JForum Team