ich verzweifle an folgender Aufgabe:
in einer Textbox soll die Return-Taste abgefragt
werden, wenn Return nun also gedrückt wurde,
soll eine Überprüfung statt finden, die die Text
Eigenschaft auf „null“ hin überprüft, wenn nicht „null“
dann soll er die Else-Aufgabe ausführen.
Das dumme ist, bei mein TextFeld ist „null“ aber er
überspringt die Anweisung und geht zur „Else“ über…
Hier der fertige Code:
private void txtFilmtitel\_keyUp(Object source, KeyEvent e)
{
if(e.keyData == Key.RETURN)
{
if ( txtFilmtitel.getText() == null )
{
strSql = "SELECT \* FROM Titel WHERE INSTR(Titel, '" + txtFilmtitel.getText() + "') ORDER BY Titel;";
if ( adoRecHaupt.getState() == intStateOpen ) {adoRecHaupt.close();}
adoRecHaupt.open(strSql, strConHaupt, intOpenDynamic, intLookOptimistic);
strSql = "";
}
else
{
strSql = "SELECT \* FROM Titel WHERE INSTR(Titel, '" + txtFilmtitel.getText() + "') ORDER BY Titel;";
if ( adoRecHaupt.getState() == intStateOpen ) {adoRecHaupt.close();}
adoRecHaupt.open(strSql, strConHaupt, intOpenDynamic, intLookOptimistic);
strSql = "";
}
}
}
Was ist falsch ?? Wie gesagt, GetText ist „null“ laut
Direktfenster:
?txtFilmtitel
{text=null, x=8, y=16, width=240, height=23}.
ich hatte mal en ähnliches Problem, man kann nicht einfach mit ==null vergleichen, man muß da eine String-Methode (equals) oder so ähnlich nehmen. Oder probiers mal mit =="".
Wir haben das damals anders gelöst, deshalb kann ich dir keine genaue Methode nennen.
private void txtFilmtitel\_keyUp(Object source, KeyEvent e)
{
if(e.keyData == Key.RETURN)
{
if ( txtFilmtitel.getText().equals("") )
{
;
}
else
{
strSql = "SELECT \* FROM Titel WHERE INSTR(Titel, '" + txtFilmtitel.getText() + "') ORDER BY Titel;";
if ( adoRecHaupt.getState() == intStateOpen ) {adoRecHaupt.close();}
adoRecHaupt.open(strSql, strConHaupt, intOpenDynamic, intLookOptimistic);
strSql = "";
}
}
}
Kennst Du ne Methode wie z.B. „if NOT a == 0“,
damit ich sagen kann wenn a nicht 0 dann führe die
Anweisung aus, wenn 0 dann nichts machen, dass heißt
nur mit einer If-Anweisung arbeiten und nicht eine
If a == 0
;
Else
;
benutzen zu müssen ?? Du siehst ja im Code-Beispiel,
dass die If-Anweisung keinerlei Befehle enthällt.
Also ist dieser Code überflüssig.
Also in Visual Basic funktioniert
das mit der NOT-Anweisung, geht das auch in Java ??
Also in Visual Basic funktioniert
das mit der NOT-Anweisung, geht das auch in Java ??
Den Operator NOT kriegst du in Java mit !, also:
if( ! ( a == b ) )
…
außerdem kannst du noch auf ungleich prüfen:
if( a != b )
…
Das mit dem == und equals bei Strings liegt daran, dass du in Java keine Operatoren überladen kannst, d. h. eine Klasse kann keine eigene Methode für den Vergleichsoperator implementieren, es wird immer die Referenz verglichen. == gibt deswegen nur true, wenn es sich um dasselbe Objekt handelt und ist meistens nur bei Primitives (int, long etc, das sind keine Objekte, da funkt == wie gewünscht).
und ich hab mich schon gefragt was dieses ! zu
bedeuten hatte (ich dachte das war ein Referenzzeichen).
Und gewundert habe ich mich auch, dass Java
als ungleich nicht zulässt.
Jetzt bin ich wieder ein bischen schlauer geworden,