Hallo,
ich schreibe eine kleine Anwendung, die ein externes Programm starten soll. In einem Textfeld möchte ich den Status dieses Programmlaufs anzeigen, also bei Start:
"Programm gestartet. Bitte warten, es kann einige Minuten dauern..."
und nach Ende des Programms:
"Programm beendet"
An dem Start-Button habe ich einen ActionListener mit der actionPerformed-Methode und da das nicht so ganz einfach zu sein scheint, habe ich auch bereits einen Thread dafür:
private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {
// Das Textfeld neu zeichnen
repaintTextField();
ResourceMap resourceMap = Application.getInstance(ProgStarterApp.class).getC ontext().getResourceMap(ProgStarterAboutBox.class) ;
String startFile = resourceMap.getString("Program.StartFile");
try {
Process proc = Runtime.getRuntime().exec(startFile);
proc.waitFor();
int exitCode = proc.exitValue();
jTextField2.setText("Programm beendet");
} catch (Exception ex) {
ex.printStackTrace();
}
}
private void repaintTextField() {
Thread thread = new Thread(new Runnable() {
public void run() {
jTextField2.setText("Programm gestartet. Bitte warten, es kann einige Minuten dauern...");
jTextField2.repaint();
}
}
);
thread.setPriority(Thread.NORM_PRIORITY);
thread.start();
}
Leider funktioniert das aber nicht.
Könnt ihr mir da noch einen Tipp geben?
Vielen Dank und schöne Grüße,
Regina
ich schreibe eine kleine Anwendung, die ein externes Programm starten soll. In einem Textfeld möchte ich den Status dieses Programmlaufs anzeigen, also bei Start:
"Programm gestartet. Bitte warten, es kann einige Minuten dauern..."
und nach Ende des Programms:
"Programm beendet"
An dem Start-Button habe ich einen ActionListener mit der actionPerformed-Methode und da das nicht so ganz einfach zu sein scheint, habe ich auch bereits einen Thread dafür:
private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {
// Das Textfeld neu zeichnen
repaintTextField();
ResourceMap resourceMap = Application.getInstance(ProgStarterApp.class).getC ontext().getResourceMap(ProgStarterAboutBox.class) ;
String startFile = resourceMap.getString("Program.StartFile");
try {
Process proc = Runtime.getRuntime().exec(startFile);
proc.waitFor();
int exitCode = proc.exitValue();
jTextField2.setText("Programm beendet");
} catch (Exception ex) {
ex.printStackTrace();
}
}
private void repaintTextField() {
Thread thread = new Thread(new Runnable() {
public void run() {
jTextField2.setText("Programm gestartet. Bitte warten, es kann einige Minuten dauern...");
jTextField2.repaint();
}
}
);
thread.setPriority(Thread.NORM_PRIORITY);
thread.start();
}
Leider funktioniert das aber nicht.
Könnt ihr mir da noch einen Tipp geben?
Vielen Dank und schöne Grüße,
Regina
Comment