Variable Übernimmt den Wert nicht

Status
Nicht offen für weitere Antworten.

Miladriel

Mitglied
Hallo,
Ich arbeite an einem (für mich zumindest) ziemlich großen Projekt und bin nun an einer Stelle auf ein problem gestoßen zu der mir keine Lösung einfallen will.
Ich habe eine int variable der je nach dem welchen Wert 'Typ' hat aus einem bestimmten Textfeld ein Wert zugewiesen werden soll den ich eingebe.
Mein Code dazu sieht so aus:
[Java] System.out.println(tprname1.getText());//AnalyseZeile
System.out.println(Typ);//AnalyseZeile
System.out.println(tprlaenge1.getText());//AnalyseZeile
if (Typ==tprname1.getText()){
laenge = Integer.parseInt(tprlaenge.getText())/10;
System.out.println("rein");//AnalyseZeile

}
if (Typ==tprname2.getText()){
laenge = Integer.parseInt(tprlaenge2.getText())/10;
}
if (Typ==tprname3.getText()){
laenge = Integer.parseInt(tprlaenge3.getText())/10;
}
if (Typ==tprname4.getText()){
laenge = Integer.parseInt(tprlaenge4.getText())/10;
}
if (Typ==tprname5.getText()){
laenge = Integer.parseInt(tprlaenge5.getText())/10;
}

System.out.println(laenge);//AnalyseZeile
[/Java]
die Zeilen die '//AnalyseZeile' gekennzeichnet sind habe - wie unerwartet - zu Analysezwecken eingeführt nachdem das ganze nicht funktionierte.
Ich habe in den Tests auch erstmal nur die Textfelder tprname1 und tprlaenge1 beschrieben.
In den ersten Zeilen sind die Werte so wie sie sein sollen, trotzdem scheint die bedingung für die if-Abfrage nicht erfüllt zu sein und somit der Wert für 'laenge' nirgends zu gewiesen und somit bleibt er am ende 0- soweit bin ich mit meiner Analyse gekommen - nur leider ergibt sich daraus für mich kein ersichtlicher Grund "Warum" das so sein soll.

Ich hoffe irgendjemand hier hat eine Idee dazu-bin langsam echt am verzweifeln...
Liebe Grüße
Miladriel
 
Benutze
Code:
equals()
, um String zu vergleichen, nicht [c]==[/c].
 
Wenn du solche Sätze ins menschlich-lesbare übersetzt, kann dir vielleicht geholfen werden. ???:L
Ausgerechnet diesmal war der Satz doch ok^^ Er hat einen haufen Textfelder, und die variable "Typ" gibt die nummer des textfeldes an, aus dem irgendwas ausgelesen werden soll... Dass die Idee äußerst merkwürdig zu sein scheint ist eine andere frage... Oder nicht? 😉
 
Ausgerechnet diesmal war der Satz doch ok^^

Wenn man Interpunktion als unbekanntes Fremdwort sieht, dann schon. Für mich fehlen da einige Satzzeichen, nicht um zu meckern, sondern um den Satz lesbar zu machen. Aneinander gereihte Worte ergeben noch lange keinen Satz! Ich gebe mir erst garkeine Mühe, ewig rumzurätseln, was das bedeuten könnte. Anders ist es natürlich bei Leuten, die selbst so schreiben - man versteht sich untereinander... 😉
 
Zuletzt bearbeitet:
Wenn man Interpunktion als unbekanntes Fremdwort sieht, dann schon. Für mich fehlen da einige Satzzeichen, nicht um zu meckern, sondern um den Satz lesbar zu machen. Aneinander gereihte Worte ergeben noch lange keinen Satz! Ich gebe mir erst garkeine Mühe, ewig rumzurätslen, was das bedeuten könnte.
Oooch, halb so wild, im ersten Post hab ich sogar ein Komma entdeckt: Der OP weiss eben den großen Wert der Satzzeichen zu schätzen, und setzt sie daher ein bisschen sparsam ein, aber im großen und ganzen geht's imho noch^^
Anders ist es natürlich bei Leuten, die selbst so schreiben - man versteht sich untereinander... 😉
Wie, was? Wen meinst du denn^^ 😀😳

*damnit, ich hab mir schon vor 2 jahren vorgenommen, bei einem deutsch-Kurs für Fortgeschrittene mitzumachen :autsch:*
 
Zuletzt bearbeitet:
OOT:
Ok- Sorry , aber ich möchte an dieser Stelle mal darauf hinweisen das ich sehr wohl weiß das ich kein Ass in Rechtschreibung und Grammatik bin, also kann ja das nicht mein Anliegen gewesen sein diesen Thread zu eröffnen.
Wem es wichtig ist nur Leuten zu helfen die sich nur schriftlich perfekt Ausdrücken können der möge sich doch einfach von solchen Threads,wie meinen, abwenden und denen helfen gehen, statt den Threadersteller vorzuführen. Vielen Dank.

Benutze equals() , um String zu vergleichen, nicht == .
Das mit dem '==' habe ich halt so gelernt hat bisher auch bei Strings bisher wunderbar funktioniert. Leider weiß ich auch nicht genau wie ich das einbauen sollte( das '==' einfach mit 'equals()' ersetzten wars zumindest nicht^^)

und Variablen schreibt man klein..
Typ -> typ
Im Prinzip bin ich mir dessen bewusst. Daran kann es aber auch wohl kaum liegen, zumal mein Prgramm ansonnsten wunderbar mit dieser Variable arbeitet. 🙂

die variable "Typ" gibt die nummer des textfeldes an, aus dem irgendwas ausgelesen werden soll...

die Variable 'Typ' ist ein String. Ich habe da 5 verschiedene Textfelder bei denen eine bezeichnung/name eingegeben wird. Dazu gehören jeweils 5 Textfelder in denen die Länge der 'gegenstände' eingegeben wird. Und dann kann über ein Dropdownmenü, in dem die Namen/Bezeichnungen, die eingegeben wurden, angzeigt werden, ausgewählt werden welcher Gegenstand gwünscht ist. Und zur Anzeige dessen möchte ich vergleichen was wurde ausgewählt(mein String 'Typ') und was steht in den Textfeldern und je nachdem bei welchem Textfeld für den Namen/Bezeichnung die übereinstimmung auftritt, soll aus dem passenden Textfeld für die Länge der Wert in die int Variable geschrieben werden.

Auf die Gefahr hin wieder einige unverantwortliche Grammatik und Rechtschreibfehler auf die Welt loszulassen,
verbleibe ich mal mit freundlichen Grüßen
Miladriel

Edit: ok das mit den equals hab ich gefunden- aber das hat keine änderung gebracht.
 
Zuletzt bearbeitet:
OOT:
Ok- Sorry , aber ich möchte an dieser Stelle mal darauf hinweisen das ich sehr wohl weiß das ich kein Ass in Rechtschreibung und Grammatik bin, also kann ja das nicht mein Anliegen gewesen sein diesen Thread zu eröffnen.
Wem es wichtig ist nur Leuten zu helfen die sich nur schriftlich perfekt Ausdrücken können der möge sich doch einfach von solchen Threads,wie meinen, abwenden und denen helfen gehen, statt den Threadersteller vorzuführen. Vielen Dank.
Mach dir nichts draus - einfach ignorieren. In jeder Community gibt's Individuen, die einfach nur gerne rumpöbeln, aber sachlich nichts beizutragen haben. Schade nur, dass einige, auf die das normalerweise nicht zutrifft, immer wieder die Trolle füttern...

Das mit dem '==' habe ich halt so gelernt hat bisher auch bei Strings bisher wunderbar funktioniert. Leider weiß ich auch nicht genau wie ich das einbauen sollte( das '==' einfach mit 'equals()' ersetzten wars zumindest nicht^^)
Wenn die Strings den gleichen Inhalt haben, sollte ein equals() funktionieren. Wie hast du es denn gemacht?
Siehe auch: http://www.java-forum.org/java-faq-beitraege/1350-vergleichen-von-strings.html
 
Habe die bedingung nun mit ' if (Typ.equals(tprname1.getText()))' eingeleitet an allen Stellen aber immer noch das gleiche.
tfa hat gesagt.:
Wenn die Strings den gleichen Inhalt haben, sollte ein equals() funktionieren.
Um zu Kontrolieren,dass die Strings den gleichen Inhalt haben, direkt vor der Bedingung mit dem 'System.out.println' die beiden Werte Ausgeben lassen.
Und an genau der Stelle haben diese den gleichen Wert.
 
Wenn du solche Sätze ins menschlich-lesbare übersetzt, kann dir vielleicht geholfen werden. ???:L
In der regel versteht man sätze auch ohne satzzeichen, sogar mit buchstabendrehern und auch ganz in groß- oder kleinschrift. Das trifft natürlich nicht unbedingt für leute zu, deren muttersprache nicht deutsch ist, oder die legastheniker sind. Wenn eins von beiden auf dich zutrifft, solltest du evtl. deutsche internetforen meiden. Also würd ich das problem zuallererst bei dir selbst suchen, anstatt beim autor, denn alle anderen scheinen den satz ja verstanden zu haben, außer dir, ergo muss mit dir was nicht stimmen und nicht mit dem autor...
 
Ich weiss nicht so genau...
1. Ist Typ ein String? (Wenn nicht, dann mit Typ.toString().equals() oder sonstwas arbeiten)
2. Ist die Ausgabe von Typ und dem anderen GENAU gleich? (also gleiche Groß-Kleinschreibung und gleiche Leerzeichen, gerade am Ende des Strings)


Und zur Interpunktion: Kann man vernachlässigen wenn man will, die Skillpunkte kann man woanders besser rein stecken wenn man Java grad erst lernt.
 
Das mit dem '==' habe ich halt so gelernt hat bisher auch bei Strings bisher wunderbar funktioniert.
Das kann nur dann funktionieren, wenn die Strings nicht nur gleich aussehen, sondern schlicht und einfach dasselbe Objekt sind.

Habe die bedingung nun mit ' if (Typ.equals(tprname1.getText()))' eingeleitet an allen Stellen aber immer noch das gleiche.

Um zu Kontrolieren,dass die Strings den gleichen Inhalt haben, direkt vor der Bedingung mit dem 'System.out.println' die beiden Werte Ausgeben lassen.
Und an genau der Stelle haben diese den gleichen Wert.
Ich glaube kleines kompilierbares beispiel würde enorm zur schnellen Auflösung des Problems beitragen...

die Variable 'Typ' ist ein String.
Okay. Ein String aus irgendeiner abzählbaren bzw. sogar endlichen menge, deren Elemente irgendwelchen GUI-Komponenten zugeordnet werden... Sinngemäß sowas wie eine Zahl bzw Enum^^

Mach dir nichts draus - einfach ignorieren. In jeder Community gibt's Individuen, die einfach nur gerne rumpöbeln, aber sachlich nichts beizutragen haben. Schade nur, dass einige, auf die das normalerweise nicht zutrifft, immer wieder die Trolle füttern...
Ja, sorry, ich dachte eigentlich, dass der Thread wie so oft mit em Hinweis auf equals() zu ende ist, hab hier nicht mit so einer überraschenden Wendung gerechnet^^ 😳
 
Zuletzt bearbeitet:
OOT:
Ok- Sorry , aber ich möchte an dieser Stelle mal darauf hinweisen das ich sehr wohl weiß das ich kein Ass in Rechtschreibung und Grammatik bin, also kann ja das nicht mein Anliegen gewesen sein diesen Thread zu eröffnen.
Wem es wichtig ist nur Leuten zu helfen die sich nur schriftlich perfekt Ausdrücken können der möge sich doch einfach von solchen Threads,wie meinen, abwenden und denen helfen gehen, statt den Threadersteller vorzuführen. Vielen Dank.
Was heisst hier Sorry? Für eine derartige Ausdukweise wie die Deine muss man sich doch nicht entschuldigen. Aber vllt. sollte ich mich ja für meinen Quatsch von oben entschuldigen, was aber an den meist noch viel unverständlicheren Ausdruckweisen einiger vieler anderer auch nichts ändern würde. Mir persönlich ist es völlig Hupe, ob da mal so'n paar Satzzeichen fehlen, die GrOsS unD kLeiNSchrEibUnG nicht passt oder ob da Rchstescriehbfeller drin sind. Ich versuche zu verstehen.
BTW.: Namenskonventionen interessieren mich in der Regel im übrigen genau so wenig. Nur wenn ich hier Codezeilen poste, versuche ich da peinlich genau drauf zu achten. Irgendwie haben es sich hier einige zu ihrer Aufgabe gemacht einen stets drauf hin zu weisen. Diese Hilfestellungen sind dabei so nützlich wie'n Buckel. ...Das musste mal raus...
...zum Thema:
Ist "Typ" überhaupt vom Typ String? Wenn nicht versuch' mal
Java:
if(Typ.toString().equals(tprname2.getText())) {
@Edit: komischerweise passiert es mir immer wieder... mist zu langsam...
@Edit2:
painii hat gesagt.:
Und zur Interpunktion: Kann man vernachlässigen wenn man will, die Skillpunkte kann man woanders besser rein stecken
YESSSSS! :toll:
 
Zuletzt bearbeitet von einem Moderator:
In der regel versteht man sätze auch ohne satzzeichen, sogar mit buchstabendrehern und auch ganz in groß- oder kleinschrift. Das trifft natürlich nicht unbedingt für leute zu, deren muttersprache nicht deutsch ist, oder die legastheniker sind. Wenn eins von beiden auf dich zutrifft, solltest du evtl. deutsche internetforen meiden. Also würd ich das problem zuallererst bei dir selbst suchen, anstatt beim autor, denn alle anderen scheinen den satz ja verstanden zu haben, außer dir, ergo muss mit dir was nicht stimmen und nicht mit dem autor...

Alles klar! Für dich habe ich nur Mitleid übrig - aber immerhin - ich hab dich nicht ignoriert... 😱
 
1. Ist Typ ein String? (Wenn nicht, dann mit Typ.toString().equals() oder sonstwas arbeiten)
2. Ist die Ausgabe von Typ und dem anderen GENAU gleich? (also gleiche Groß-Kleinschreibung und gleiche Leerzeichen, gerade am Ende des Strings)

Zu 1.
Ich bin mir 99% sicher das Typ ein String, da ich die Variable 10 Zeilen vorher mit
'Typ = (String) prAuswahl.getSelectedItem();'
Zu 2. jedoch:
Also an der erstellung von Typ aus dem 'SelectedItem' kann es denke ich mal nicht liegen, da ich dies in einem andern Teil des Programms genauso gemacht habe und dort ein abgleich funktioniert(auch solange ich das noch mit "==" verglichen habe).
Die Items in dem Dropdownmenü erstelle ich jedoch aus den Textfeldern z.b.:mit prAuswahl.addItem(tprname1.getText());
Kann es sein sein das dadurch evt. unerwünschte Leezeichen entstehen??
Die würde ich ja bei der Ausgabe über System.out.println(); schlecht sehen.


Warum ich nicht den ganzen Quellcode meines Frames oder sogar meines gesammten Projektes poste?
Ich dachte mir halt, da ich den Fehler eigentlich schon lokalisiert hatte, es ist sinnvoller genau nach dem Problem zu Fragen statt euch meinen Code hinzuschreiben und zu sagen "geht nicht macht ma"^^
Zumal das ganze recht umfangreich ist. Und nur den Teil in ein compilierbares Beispiel zu verwandeln, ist wohl recht schwierig.
 
Zuletzt bearbeitet:
Ok- es scheint daran gelegen zu haben das da wohl irgendwas verändert wurde(wagrscheinlich Leerzeichen hinten dran gehängt) wenn ich das vom Textfeld direkt in das dropdownmenu geschrieben habe.
Habe jetzt einen "Umweg" eigebaut so das ich den Inhalt des Textfeldes erst in einem String speichere und dann mit 'comboBox.addItem(TextfeldString);' das Item für das Dropdownmenu erstelle.
Vielen Dank für eure Aufmerksamkeit und Hilfe 🙂
Freundliche Grüße
Miladriel
 
Ich hab zwar immer noch keinen Schimmer Ahnung was du da versuchst, aber überflüssige Leerzeichen an den Rändern kriegt man mit String#trim() abgeschliffen.
 
Status
Nicht offen für weitere Antworten.

Neue Themen


Zurück
Oben