#1 18. November 2007 Übergabe mit Methode Huhu Rushys ich habe ein kleines Problem, was eigentlich kein Problem darstellen sollte. Problem: Ich habe 1 GUI als Leer und 2 Klassen als Controller und Model Ich möchte eine 0 zurückgeben an die GUI und dem Textfeld übergeben: GUI: Code: [...] private Model Model = new Model(); [...] textField1.setBounds(24, 16, 209, 24); textField1.setText(Model.getNull()); cp.add(textField1); die Klasse Model: Code: int i = 0; public int getNull(){ return i; } die fehlermeldung: Code: Compiliere C:\Programme\JavaEditor\Programm\Leer.java mit Java-Compiler Leer.java:27:15: cannot find symbol symbol : method setText(int) location: class java.awt.TextField textField1.setText(Model.getNull()); ^ 1 error mir fällt nichts ein, kann das kleine Programm auch hochladen, es ist ja nichts großes Bewertung ist sicher! + Multi-Zitat Zitieren
#2 18. November 2007 AW: Übergabe mit Methode Moin Liegt einfach nur daran, dass deine Methode einen Integer-Wert zurückgibt. Der Parameter für die setText Methode muss aber ein String sein. Um das Problem zu umgehen musst, du den Integer in einen String umwandeln: Code: textField1.setText( String.valueOf( Model.getNull() ) ); So dürfte es gehen + Multi-Zitat Zitieren
#3 18. November 2007 AW: Übergabe mit Methode großen Dank, gibt es vielleicht auch eine Möglichkeit das TextFeld ein Integer zu übergeben? Bewertung ist raus. + Multi-Zitat Zitieren
#4 18. November 2007 AW: Übergabe mit Methode Du musst vorher die int zahl in einen String umwandeln, das geht leider nicht anders, weil die methode setText() einen String erwartet + Multi-Zitat Zitieren
#5 18. November 2007 AW: Übergabe mit Methode Okay vielen Dank euch könnte ich nicht die toString() Methode benutzen? Bewertung ist raus mfg p.s. ihr seid alle klasse, meine Lehrer bringen mir nichts bei, dabei sind das meist nur paar Worte. + Multi-Zitat Zitieren
#6 18. November 2007 AW: Übergabe mit Methode Also: Du kannst auch: Code: textField1.setText( Integer.toString( Model.getNull() ) ); benutzen. Dürfte das Gleiche sein.... Aber: Code: textField1.setText( Model.getNull().toString() ); geht nur wenn "getNull()" einen "Integer" zurückgeben würde. Bei einem "int" geht das nicht, weil das in Java zwei verschiedene Dinge sind. + Multi-Zitat Zitieren
#7 24. November 2007 AW: Übergabe mit Methode Code: textField1.setText("" + Model.getNull()); kein weiterer funktionsaufruf bringt dir nen mü mehr speed + Multi-Zitat Zitieren
#8 24. November 2007 AW: Übergabe mit Methode Vielen Dank habe eine Frage noch (damit ich nicht noch ein Thread aufmachen muss Ich möchte das Textfeld wenn die Enter-Taste gedrückt wird von 0 auf 64 ändert, das Problem ist die Methode "setText" ist nicht statisch und die Wertübergabe von Key ist eine statische Methode. Wie könnte ich es einfach lösen, ich hatte schon 3 Lösung nur alle würde die 64 nicht übergeben. Bewertung sit sicher1^^ Methode in der Main: Code: private void init(){ int frameWidth = 300; int frameHeight = 109; setSize(frameWidth, frameHeight); setLocation(500,500); addWindowListener(new Controller()); textField1.addKeyListener(new Key()); add(textField1); } Key.java: Code: public void keyReleased(KeyEvent ev) { if (ev.getKeyCode() == KeyEvent.VK_ENTER){ Model.setWert(64); } } Mode.java Code: public class Model{ // Anfang Variablen int i = 0; // Ende Variablen public Model(){ } // Anfang Ereignisprozeduren public int getNull(){ return this.i; } public void setWert(int a){ this.i=a; } // Ende Ereignisprozeduren } + Multi-Zitat Zitieren
#9 24. November 2007 AW: Übergabe mit Methode du könntest es auch so machen: GUI: Code: [...] private Model Model = new Model(); [...] textField1.setBounds(24, 16, 209, 24); textField1.setText(""+Model.getNull()); cp.add(textField1); zum zweiten: Du kannst das Model Objekt dem Konstruktor deiner Keyklasse übergeben und dann die Methode als nicht statische aufrufen. Bin jetzt nicht sicher ob ich dich richtig verstanden habe. oder wird der Inhalt deines Textfelds nicht als 64 angezeigt? + Multi-Zitat Zitieren
#10 24. November 2007 AW: Übergabe mit Methode du möchtest das feld auf 64 setzen wenn ihrgentwo die entertaste gedrückt wird oder wenn das textfeld aktiv ist? + Multi-Zitat Zitieren