Hallo,
Ich möchte den Inhalt von einem String von einem Textfeld bekommen. D.h. ich möchte das wenn jemand etwas in das Textfeld schreibt bekommt der String dessen inhalt. Das Problem ist das wenn ich den String ausführen möchte, dann steht da immer "null". Woran liegt das ? Was kann man machen um das zu ändern ?
Mal davon abgesehen, dass du Bezeichner mit nur einem Großbuchstaben (hier S und T) besser nur für Typvariablen benutzen solltest und das Design grottig ist: Schieb mal das
Ich habe jetzt versucht den ersten Code auf meinen anderen Code umzusetzen.
Hier zeigt er jedoch auch null an, wenn ich versuche den String auszugeneben. Hier ein Ausschnitt von de Code (Eingabe : TextFeld)
Java:
Eingabe.addActionListener(newActionListener(){publicString b;publicvoidForm1(String a){
b = a;}publicvoidseta(String a){
b = a;}publicStringgeta(){return b ;}publicvoid saying (){
a =Eingabe.getText();{}}{}@OverridepublicvoidactionPerformed(ActionEvent ae){System.out.println(a);}});
Es ist deswegen so "komisch " geschrieben, weil ich den String "a" ,den ich über der Methode mit "static String a;" deklariert habe, in einer anderen Klasse benötige.
das ist lustig, du versprichst "getA" lieferst aber b
in deiner ActionPerformed Methode wird a kein Wert zugewiesen.
Du solltest evtl die Methode "saying()" aufrufen, die macht ja das was du willst
Java:
publicvoid saying (){
a =Eingabe.getText();}@OverridepublicvoidactionPerformed(ActionEvent ae){saying();System.out.println(a);}
Klassen stehen fuer sich alleine.
Klassen stellen oeffentliche Methoden zur Verfuegung, um mit ihnen zu interagieren.
Auf Membervariablen zuzugreifen ist NIE eine gute Idee!
Static ist erstmal auch nur in bestimmten Situationen eine brauchbare Loesung - meist ist ein Singleton besser geeignet, aber nun gut.
Ich persoenlich wuerde auch die Main Funktion auslagern...
Ich weiss das ist jetzt wahrscheinlich ziemlich nervig, aber ich habe jetzt das Problem das die andere KLasse in der ich den String a verwenden möchte ihn nicht erkennnt. Also da steht als fehler "Syntax error on token "a", VariableDeclarator expected after this token"
Hier der Code:
Java:
package myscan;importjava.awt.AWTException;importjava.awt.event.ActionEvent;importjava.awt.event.ActionListener;import myscan.Form1;publicclassButtonokimplementsActionListener{Form1Form1object=newForm1();Form1object.a;@OverridepublicvoidactionPerformed(ActionEvent arg0){// TODO Auto-generated method stubSystem.out.println(a);}}