usafnetworx
Grünschnabel
Hallo liebe Tutorials.de Gemeinde.
Ich habe mich entschlossen, meine Frage hier zu stellen, vielleicht kann mir einer folgendes Phänomen erklären:
In meinem Java-Programm habe ich einen Connect Button. Wenn dieser betätigt wird, soll auf der einen Seite natürlich verbunden werden, auf der anderen Seite dieser Button aber für die Durchlaufzeit der Funktion deaktiviert werden. Darüber hinaus soll ein Label (bitte warten..) eingeblendet werden und nach jedem Zwischenschritt des Verbindens ein Eintrag ins Logeintrag (TextArea) gemacht werden.
Soweit ist ja alles klar. Aber wenn der Button nun gedrückt wird, fängt das Programm gleich an mit dem Verbinden. Das heißt, der Button wird nicht sofort inaktiv, das Label erscheint nicht sofort etc. Das Programm steht für die Zeit des Verbindungsaufbaus,
obwohl die Methodenaufrufe für die Verbindungsherstellung erst nach den Anweisungen für Button, Label etc. im Code sind.
Hier ein Auszug aus dem Code:
private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {
jLabel7.setVisible(true); /Bitte warten.. Label
if (!connectionOk) {
jTextArea1.setText("");
}
statusMessageLabel.setText("Verbindungsaufbau gestartet..");
log("Verbindungsaufbau gestartet..");
jButton1.setEnabled(false);
HttpUnitOptions.setExceptionsThrownOnScriptError( false );
/* DER OBIGE CODE WIRD MEINES ERACHTENS SCHON ZUVOR AUSGEFÜHRT, ABER MAN BEKOMMT DAVON NICHTS MIT, ERST NACHDEM DER FOLGENDE METHODENAUFRUF FERTIG IST! */
try {
NotencheckerView.getConnection(NotencheckerView.jTextField2.getText());
} catch (Exception ex) {
NotencheckerView.log("Fehler beim Verbindungsaufbau!");
NotencheckerView.log("Login-Daten nicht korrekt?");
NotencheckerView.connectionOk=false;
}
Warum ist dies so? Kann man eine strikt sequentielle Abarbeitung erzwingen?
Gruß
der Neuling
Ich habe mich entschlossen, meine Frage hier zu stellen, vielleicht kann mir einer folgendes Phänomen erklären:
In meinem Java-Programm habe ich einen Connect Button. Wenn dieser betätigt wird, soll auf der einen Seite natürlich verbunden werden, auf der anderen Seite dieser Button aber für die Durchlaufzeit der Funktion deaktiviert werden. Darüber hinaus soll ein Label (bitte warten..) eingeblendet werden und nach jedem Zwischenschritt des Verbindens ein Eintrag ins Logeintrag (TextArea) gemacht werden.
Soweit ist ja alles klar. Aber wenn der Button nun gedrückt wird, fängt das Programm gleich an mit dem Verbinden. Das heißt, der Button wird nicht sofort inaktiv, das Label erscheint nicht sofort etc. Das Programm steht für die Zeit des Verbindungsaufbaus,
obwohl die Methodenaufrufe für die Verbindungsherstellung erst nach den Anweisungen für Button, Label etc. im Code sind.
Hier ein Auszug aus dem Code:
private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {
jLabel7.setVisible(true); /Bitte warten.. Label
if (!connectionOk) {
jTextArea1.setText("");
}
statusMessageLabel.setText("Verbindungsaufbau gestartet..");
log("Verbindungsaufbau gestartet..");
jButton1.setEnabled(false);
HttpUnitOptions.setExceptionsThrownOnScriptError( false );
/* DER OBIGE CODE WIRD MEINES ERACHTENS SCHON ZUVOR AUSGEFÜHRT, ABER MAN BEKOMMT DAVON NICHTS MIT, ERST NACHDEM DER FOLGENDE METHODENAUFRUF FERTIG IST! */
try {
NotencheckerView.getConnection(NotencheckerView.jTextField2.getText());
} catch (Exception ex) {
NotencheckerView.log("Fehler beim Verbindungsaufbau!");
NotencheckerView.log("Login-Daten nicht korrekt?");
NotencheckerView.connectionOk=false;
}
Warum ist dies so? Kann man eine strikt sequentielle Abarbeitung erzwingen?
Gruß
der Neuling