Hallo,
ich habe ein Programm(siehe unten), welches einen ping macht (durch ping.sh), solange er pingt soll man keinen Button drücken können, sobald dieser vorbei ist, soll er alle Buttons wieder enablen.
Problem:
Wenn ich einen Doppelklick oder in der Ausführzeit(durch toten ping verlängert) einen Button drückt macht das Programm immer noch das andere Buttonevent.
Wo ist der Fehler?
ping,java,telnet,firmware, exitbutton sind alles Button
router3 ist ein Textfeld.
(Ja, unschöne for-schleife)
ich habe ein Programm(siehe unten), welches einen ping macht (durch ping.sh), solange er pingt soll man keinen Button drücken können, sobald dieser vorbei ist, soll er alle Buttons wieder enablen.
Problem:
Wenn ich einen Doppelklick oder in der Ausführzeit(durch toten ping verlängert) einen Button drückt macht das Programm immer noch das andere Buttonevent.
Wo ist der Fehler?
ping,java,telnet,firmware, exitbutton sind alles Button
router3 ist ein Textfeld.
(Ja, unschöne for-schleife)
Java:
ping.addListener(SWT.Selection, new Listener(){
public void handleEvent(Event e) {
switch (e.type){
case SWT.Selection:
try{
ping.setEnabled(false);
exitbutton.setEnabled(false);
telnet.setEnabled(false);
java.setEnabled(false);
firmware.setEnabled(false);
String atftp[]={"/bin/sh", "-c", "expect/ping.sh "+router3.getText()};
Process d = Runtime.getRuntime().exec(atftp);
BufferedReader in = new BufferedReader( new InputStreamReader((d.getInputStream())));
int i=0;
for (String pingbuffer;(pingbuffer = in.readLine()) != null;)
{
control.add(pingbuffer);
if(pingbuffer.equals("Erfolgreich"))
{
check.add("Router ist erreichbar");
i++;
}
}
if(i==0)//Falls ein Fehler da ist, schreibe...
{
check.add("Fehler: Routers wurde nicht erreicht");
}
in.close();
BufferedReader is = new BufferedReader( new InputStreamReader((d.getErrorStream())));
for (String pingbuffer;(pingbuffer = is.readLine()) != null;control.add(pingbuffer));
is.close();
control.add("");
}
catch(IOException ioexp){
control.add("Fehler bei dem IOExecption");
}
catch(Exception exp){
control.add("Fehler bei dem Execption");
}
ping.setEnabled(true);
telnet.setEnabled(true);
firmware.setEnabled(true);
java.setEnabled(true);
exitbutton.setEnabled(true);
}
}
});