[Java]Objekte während der Laufzeit erstellen und übertragen?

3 Antworten

Vom Beitragsersteller als hilfreich ausgezeichnet

"Müssen ja verschiedene Pointer als 'Bezeichnung' haben" sehe ich als falsch an, soweit ich das verstehe.

Du kannst beispielsweise bei einer Klasse Foo ganz viele

new Foo() hintereinander aufrufen.

Jetzt musst du dir noch überlegen, wo die Ergebnisse gespeichert werden.

Da fällt mir ein List<Foo> oder Foo[] ein.

Vielleicht kommen wir der Lösung gemeinsam näher, denn deine Frage habe ich nicht so ganz verstanden.


gogogo  31.10.2019, 19:12

List<JTextField> textFieldList = new ArrayList<>();

textFieldList.add( new JTextField() );

Später:

for ( JTextField textField : textFieldList )

{

textField.setText( "Mein Lieblingtext" );

}

für WasWeisIch() über alles Instanzen in textFieldList aus.

KriegerMan 
Beitragsersteller
 31.10.2019, 19:18
@gogogo

Danke dir, wie immer sehr gute Antworten! <3

gogogo  31.10.2019, 20:17
@KriegerMan

Danke für das Kompliment.

Das ist ja noch einfach. Zu Java kann ich gerne weitere Fragen beantworten, nur das Installieren von Java liegt mir nicht so. Habe das Spektrum Java 6 ... Java 8 mal intensiv gelernt.

KriegerMan 
Beitragsersteller
 31.10.2019, 19:11

Das hilft schon mal ein wenig. Meine Idee wäre ungefähr das hier:

Buttonclick(){
  JTextField test = new JTextField();
}

Das Problem was ich mir da denke, ist, dass dann doch mehrere Objekte mit "test" ansprechbar sind. Also wenn ich

test.setText("bla");

mache. Sehe ich da was falsch?

Das Objekt wird überschrieben, du könntest dir eine Klasse erstellen die ein JFrame und deine Attribute/Wette speichert. Du kannst dir dann die objekte in eine ArrayList speichern, in Java kannst du das Objekt einfach mit dem selben Namen neu zuweisen, da kommt kein Fehler.

LG

Woher ich das weiß:Studium / Ausbildung – Gelernter Fachinformatiker, Freiberufl. Softwareentwickler

KriegerMan 
Beitragsersteller
 31.10.2019, 19:18

Okay, aber das heißt, das alte mit all seinen Attributen würde verloren gehen? Ich habe vor per Button Textfelder und Checkboxen auszufragen, die ganzen Werte als Objekt zu speichern und dieses wiederum an eine weiter Methode zu geben. Wenn der Knopf neu gedrückt wird, sind die alten Daten weg, aber das ist ja kein Problem. Danke dir!

FinnB132  31.10.2019, 20:11
@KriegerMan

Nein, nicht wenn du sie in eine ArrayList oder ähnliches speicherst, es gibt in Java keine pointer, wenn du ein Objekt neu zuweist dann wird das alte (sofern nicht mehr benötigt) von der Garbage Collection zerstört. Falls dein Objekt aber in einer List/Array ist dann wird es nicht von der Garbage Collection recycled.

LG

Kommt auf die Implementierung an. Wäre es zum Beispiel so aufgebaut:

button.onClick {
  JFrame frame = new JFrame()
  ...
}

wird immer ein neues frame erstellt


KriegerMan 
Beitragsersteller
 31.10.2019, 19:08

Wie spreche es denn korrekt an? Mit "frame" würden sich dann ja alle angesprochen fühlen oder nicht? :D