Zum Inhalt springen

Problem bei Aufruf einer Klassenmethode


ostpower

Empfohlene Beiträge

Hi Leute, ich hab folgendes Problem:

Ich hab ne Klasse Oberfläche. Dort gibts ne Funktion getName(). Die Methode gibt en String zurück, also in der Methode wird ne Textfeldeingabe eingelesen und ausgegeben bzw. auch zurück gegeben, sind ungefähr so aus:

public String getName(){

String AnfrageName = textfieldName.getText();

System.out.println("name="+AnfrageName);

return AnfrageName;

}

Die Methode ansich funktioniert auch, gibt keine Quelltextfehler und der Inhalt des Textfeldes wird auch ausgegeben, wenn ich die Methode innerhalb der Klasse Oberfläche aufruf. Jetzt hab ich aber noch ne zweite Klasse, dort will ich diese Methode aufrufen. Hab also en Objekt der Klasse Oberfläche dort erzeugt:

Oberfläche test = new Oberfläche();

So wenn ich dann die Methode aufruf:

test.getName();

passiert gar nix. So der Knackpunkt ist Folgender (ich habs mit nem festen String getestet, deswegen weiß ichs...also denk ich ma): in der Methode getName hab ich ja textfieldname.gettext Und genau des macht er net wenn cih die methode über die andere klasse aufruf.

ich hoff ihr versteht was ich mein ^^

Link zu diesem Kommentar
Auf anderen Seiten teilen

Eigentlich ist es nicht so richtig verständlich. Ich gehe mal davon aus du arbeitest mit Swing!?

Dann wäre außerdem ein wenig mehr Quellcode sehr nützlich. Weil wenn du deine Oberfläche mit deinem TextField erzeugst und anzeigst, dann wird über die getText() Methode auch der Text zurück gegeben der im TextField steht, wenn da nichts steht, wird natürlich auch nichts ausgegeben.

Also allgemein mehr Quelltext wäre vorteilhaft, ansonsten raten wir hier einfach nur rum und treffen vielleicht irgendwann mal das richtige.

Link zu diesem Kommentar
Auf anderen Seiten teilen

ohne jetzt deinen genauen Quelltext zu kennen, schaue ich in meine Glaskugel und sage: du darfst in deiner 2ten Klasse nicht ein neues Objekt von Oberfläche erstellen, sondern musst dieser Klasse eine referenz auf das bestehende Objekt geben.

Wenn ich jetzt Recht habe, geh ich mir heut abend noch nen Lottoschein kaufen :bimei

Link zu diesem Kommentar
Auf anderen Seiten teilen

Ok ich versuchs nochma. Also ich habe die Klasse Oberfläche. Dort habe ich eine Oberfläche mit Swing gebastelt. Auf dieser Oberfläche gibts ein Textfeld. Mit der Methode getName wird die Eingabe zurückgegeben und zusätzlich (zu testzwecken) in der konsole ausgegeben.

Wenn ich nun statt

String AnfrageName = textfieldName.getText();

String AnfrageName = "blubb";

mache, dann geht alles einwandfrei. Also wenn ich in der anderen Klasse die Methode aufrufe. Also einen festen String nimmt er. Wenn ich aber in der Klasse Oberfläche die Methode aufrufe, dann geht das auch mit textfieldname.gettext()

Ich weiß nicht was ich an Quelltext noch einstellen kann, weil in der Klasse Oberfläche sind das vor allem zich Befehle zum Erstellen der Oberflächenbestandteile (Textfelder, Buttons etc.). Das entscheidende ist die getname-methode und wie ich diese aus der anderen klasse aufrufen kann.

Link zu diesem Kommentar
Auf anderen Seiten teilen

ohne jetzt deinen genauen Quelltext zu kennen, schaue ich in meine Glaskugel und sage: du darfst in deiner 2ten Klasse nicht ein neues Objekt von Oberfläche erstellen, sondern musst dieser Klasse eine referenz auf das bestehende Objekt geben.

Wenn ich jetzt Recht habe, geh ich mir heut abend noch nen Lottoschein kaufen :bimei

Wie meinst du das? Also was für ein bestehendes Objekt? Durch

Oberfläche test = new Oberfläche();

habe ich ja zum ersten mal ein objekt erstellt.

Link zu diesem Kommentar
Auf anderen Seiten teilen

Naja mit den Angaben kann ich dir aber nur sagen, dass du dann was falsch machen musst, weil es so normalerweise geht, weil einfach nicht genug informationen da sind.

Wichtig wäre denke ich mal vor allem, wie und wann die das Objekt für deine Oberfläche erzeugst und was du damit machst bis du deine getName() Methode aufrufst.

Das was mir jetzt, wie ja schon geschrieben, am ehesten einfällt, ist einfach dass in deinem Textfeld nichts drin steht was er ausgeben kann. Wenn du das Objekt für deine Oberfläche erzeugst und dann niemand was in das Textfeld einträgt, dann kann er ja auch schlecht was ausgeben.

Was dafür spricht, dass es ja mit einem festen String funktioniert.

Link zu diesem Kommentar
Auf anderen Seiten teilen

Dein Kommentar

Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...