[Java] Übergabe mit Methode

Dieses Thema im Forum "Programmierung & Entwicklung" wurde erstellt von klaiser, 18. November 2007 .

  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!
     
  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
     
  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.
     
  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
     
  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.
     
  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.
     
  7. 24. November 2007
    AW: Übergabe mit Methode

    Code:
    textField1.setText("" + Model.getNull());
    kein weiterer funktionsaufruf
    bringt dir nen mü mehr speed
     
  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
    }
    
     
  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?
     
  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?
     
  11. Video Script

    Videos zum Themenbereich

    * gefundene Videos auf YouTube, anhand der Überschrift.