Zum Inhalt springen
View in the app

A better way to browse. Learn more.

Fachinformatiker.de

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

Empfohlene Antworten

Veröffentlicht

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 ^^

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.

Mehr Quelltext wäre in der tat ratsamer, versteh dein problem auch nicht so ganz.

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

  • Autor

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.

  • Autor
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.

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.

Erstelle ein Konto oder melde dich an, um einen Kommentar zu schreiben.

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.