Boas,
Estou a criar um projecto em java. Ele corre um comando da shell (Process) e parsa o resultado para ser mostrado.
Agora tenho um problema no ambiente gráfico. Quando mando correr o processo o programa deixa de responder enquanto o processo está activo. O que eu quero fazer é poder matar o processo a partir do interface gráfico clicando no botão cancelar.
O processo é um traceroute
Agradeço a vossa ajuda
Estou a criar um projecto em java. Ele corre um comando da shell (Process) e parsa o resultado para ser mostrado.
Agora tenho um problema no ambiente gráfico. Quando mando correr o processo o programa deixa de responder enquanto o processo está activo. O que eu quero fazer é poder matar o processo a partir do interface gráfico clicando no botão cancelar.
O processo é um traceroute
Código:
private void runButtonActionPerformed(java.awt.event.ActionEvent evt) {
//FIXME: Arranjar maneira de poder cancelar o processo
List<ResultLine> res;
resultArea.setText("");
stopButton.setEnabled(true);
// Para o caso de não ser especificado um destino
if (targetField.getText().isEmpty())
targetField.setText("localhost");
// Corre o traceroute do sistema
res = TR.traceroute(targetField.getText(), Settings.hops, Settings.waitTime);
// Verifica se o resultado é nulo
if (res == null)
resultArea.append("Erro: Trace a rota não foi calculada");
// Constroi a String com os resultados
StringBuilder s = new StringBuilder();
for(ResultLine r : res){
s.append(r.toString());
}
resultArea.setText(s.toString());
stopButton.setEnabled(false);
}
Agradeço a vossa ajuda