Datenstrukturen an neue Klasse übergeben

Ned Nederlander

Aktives Mitglied
Hallo,
ich möchte in meinem Programm über einen Button ein neues Fenster öffnen, und in diesem dann weiterarbeiten. Dieses Fenster soll in einer neuen Klasse entstehen.

Aufrufen will ich dieses neue Fenster mit

neuesFenster f = new neuesFenster();


Ich brauche allerdings Zugriff auf die ganzen Kontainer und Datenstrukturen, die ich im bisherigen Programm erstellt und benutzt habe. Kann ich diese ähnlich wie bei der Parameterübergabe bei einer Funktion an die neue Klasse übergeben? Oder kann ich irgendwie direkt auf meine bisherigen Datenstrukturen(ints, Strings, arrays und auch eigene Datenstrukturen) aus einer anderen Klasse zugreifen?

Ich bin Anfänger und stehe gerade etwas auf dem Schlauch :)

Danke für jede Hilfe! :)
 
Zuletzt bearbeitet:

XHelp

Top Contributor
Das passiert denn mit dem alten? Du könntest ja ggf die Referenz darauf übergeben und so auf die Werte kommen.
Aber wenn deine Werte mit dennen du arbeitest in einem Fenster gespeichert sind, dann ist was beim Design schief gegangen. Du könntest die ein Model erstellen, was deine Daten enthält und dann jeweils nur die Referenz auf dein Objekt mitgeben.
 

Ned Nederlander

Aktives Mitglied
Leider verstehe ich nicht, was du mit Referenz meinst.

Ich habe zum Beispiel in meiner bisherigen Klasse ein Array das Strings enthält. Ich würd dann im nächsten Programmteil in einem neuen Fenster auch auf dieses Array zugreifen oder dieses übergeben.

Mein bisheriges Fenster ist zu diesem Zeitpunkt noch immer geöffnet.
 
G

Gast2

Gast
du kannst z.B. die Referenz übergeben:

Java:
neuesFenster f = new NeuesFenster(this);

Und im neuen Fenster Code

Java:
public NeuesFenster(AltesFenster altesFenster){
   altesFenster.getsomeValue();
}

Allerdings denke ich mal solltest du dir eher Gedanken drüber machen ob du wirklich die Daten in den Fensterinstanzen halten willst oder nicht lieber auf ein Model zugreifen: Stichwort MVC
 

henpara

Bekanntes Mitglied
und in diesem dann weiterarbeiten
Das klingt ganz danach, als würdest du deine "Arbeitsdaten" in der Fenster-Klasse "speichern". Das ist ungünstig.
Versuch mal GUI und "Arbeitsklassen" zu trennen.
Dann hast du deine Arbeitsdaten, sofern du Getter und Setter programmierst in jedem Fenster zur Verfügung.

mfg
 

Ned Nederlander

Aktives Mitglied
Die Arbeitsdaten, die ich übergeben will, beschränken sich auf 2 Stück. Deswegen kann ich jetzt nicht mein komplettes Programm umbauen, auch wenn das Design zu wünschen übrig lässt.

Ich würde gerne die Lösung mit der Referenz probieren, allerdings ist mir nicht ganz klar wie das gemeint ist.

[Java]public NeuesFenster(AltesFenster altesFenster){
altesFenster.getsomeValue();
}[/code]

Soll das dann die neue Klasse sein?
Und getsomeValue() ist ne eigene Funktion, die die entsprechenden Werte übergibt?
 

XHelp

Top Contributor
Naja, in dem alten Fenster brauchst du dann:
Java:
public class AltesFenster {
  int wert1; 
  int wert2; //eben die Werte die du haben willst
  public int getWert1() {
    return wert1;
  }
  ...
}
Dann kannst du in dem neuen Fenster mit:
Java:
altesFenster.getWert1();
darauf zugreifen und abspeichern, auswerten, wasauchimmer
 

Ned Nederlander

Aktives Mitglied
danke erstmal für die hilfe.

ich hab das jetzt mal genau so probiert, allerdings bekomme ich den fehler;
Java:
non-static method getDatenstruktur() cannot be referenced from a static context

der wert der übergeben werden soll, ist ein array mit von mir selbst definierten datenstrukturen darin.

die funktion, die den wert liefert, habe ich direkt in die alte klasse geschrieben. sie ist nicht static.

das ist die funktion im alten fenster:

Java:
	public Vector<meineDatenstruktur>[] getDatenstruktur(){

		return datenstruktur;
	
	}

und der aufruf im neuen fenster:

Java:
Vector<meineDatenstruktur>[] temp = Fenster.getDatenstruktur();

danke!
 
Zuletzt bearbeitet:

XHelp

Top Contributor
Du musst die Methode auch bei einer Instanz von Fenster aufrufen:
Java:
Fenster.getDatenstruktur(); //falsch
irgendEinInstanz.getDatenstruktur(); //richtiger
 

XHelp

Top Contributor
Ein beispiel hat dir fassy im Post #4 bereits gegeben.
Ansonsten schmeiß alle unnötigen Stellen aus dem Code und stell hier ein KSKB rein.
 

Ned Nederlander

Aktives Mitglied
meine neue klasse sieht jetzt so aus:

Java:
public class NeuesFenster{

	public NeuesFenster(Fenster fenster){

		Vector<meineDatenstruktur>[] temp = fenster.getWert();
	



	}
}

in meiner alten klasse hab ich die funktion:

Java:
	public Vector<meineDatenstruktur>[] getWert(){

		return wert;
	
	}

ebenso den aufruf:

Java:
	NeuesFenster m = new NeuesFenster(this);



so werden auch keine fehler gemeldet. wenn ich diesen aufruf allerdings oben in meine menüleiste lege, meldet mir java
"cannot find symbol symbol". macht es einen unterschied, wo ich diesen aufruf ausführe?

danke!
 
B

bygones

Gast
hast du noch irgendwo "symbol" als variable ? oder ist 2x symbol hier nur copy paste fehler ?

ansonsten.... wenn du nur getWert vom fenster brauchst, dann übergib auch nur das und nicht das ganze Fenster
 

Ned Nederlander

Aktives Mitglied
man sagte mir hier im thread das würde nicht so einfach gehen.

die genaue fehlermeldung lautet:
Java:
cannot find symbol
symbol  : constructor NeuesFenster (<anonymous javax.swing.AbstractAction>)
location: class NeuesFenster 
                                        NeuesFenster r = new NeuesFenster(this);
 
B

bygones

Gast
zeig mal die Klasse die [c]NeuesFenster r = new NeuesFenster(this);[/c] aufruft... ist sie vom Typ Fenster ?
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
D Algorithmen und Datenstrukturen in Java Allgemeine Java-Themen 40
S Algorithmen und Datenstrukturen Allgemeine Java-Themen 1
A Datenstrukturen Allgemeine Java-Themen 2
M Algorithmen und Datenstrukturen Allgemeine Java-Themen 6
A Datenstrukturen richtig anlegen/laufzeitanalyse Allgemeine Java-Themen 10
M Aufgabenstellung unklar (Vorlesung Algorithmen und Datenstrukturen..) Allgemeine Java-Themen 2
D Multiple Datenstrukturen erstellen Allgemeine Java-Themen 4
D Design: on-the-fly-Parsing + Datenstrukturen Allgemeine Java-Themen 5
D Listen / Datenstrukturen und ein blutiger Anfänger Allgemeine Java-Themen 7
J vergleich zweier datenstrukturen Allgemeine Java-Themen 6
M Effiziente Datenstrukturen Allgemeine Java-Themen 3
N neue Objektnamen durchlaufen Allgemeine Java-Themen 12
C Java11+ JavaFX HtmlEditor ContextMenu neue MenuItems hinzufügen Allgemeine Java-Themen 5
N Apache POI/ neue Reihe in Excel mit einem Button Allgemeine Java-Themen 2
B Java Mail: Prüfung auf neue Emails Allgemeine Java-Themen 1
ralfb1105 Blöcke aus Datei filtern/suchen und in neue Datei schreiben Allgemeine Java-Themen 10
G Excel Tabelle lesen und in neue Excel Tabelle einfügen Allgemeine Java-Themen 11
E neue Lizenzpflicht Java Allgemeine Java-Themen 10
T ändern neue Java Versionen was an der Programmiersprache? Allgemeine Java-Themen 15
K Mit Button neue Klasse öffnen Allgemeine Java-Themen 9
C Classpath Neue Klasse über einen Button ausführen Allgemeine Java-Themen 3
KeVoZ_ Nacheinander folgende Strings in Textdokument auf neue Zeile schreiben Allgemeine Java-Themen 6
J Java Software Compare Files und Neue File erstellen Allgemeine Java-Themen 0
K Einfaches Array in 2 neue aufteilen. Allgemeine Java-Themen 2
N Neue Software in Java 7 oder 8? Allgemeine Java-Themen 3
K Neue Elemente in JList einfügen Allgemeine Java-Themen 2
K Methode soll neue Buttons erstellen Allgemeine Java-Themen 5
S Best Practice verschiedene Exceptions fangen und neue Exception erzeugen Allgemeine Java-Themen 11
W Vergleich eines Datenträgers auf neue Dateien Allgemeine Java-Themen 14
M Neue Instanz/Kopie einer unbekannten Klasse Allgemeine Java-Themen 7
F Wie zur Laufzeit ganz neue Objekte erzeugen? Allgemeine Java-Themen 5
J Neue Wörter bilden Allgemeine Java-Themen 10
S Neue Instanz eines Objekts erzeugen - Konstruktor erhaelt Parameter. Allgemeine Java-Themen 5
J Was ist schneller? Neue Variable oder neuer Wert speziell int Allgemeine Java-Themen 3
T Log4J: Bei Programmstart immer eine neue LogDatei erzeugen Allgemeine Java-Themen 9
J Text einer .csv Datei einlesen und Zeile in NEUE Zeile hänge Allgemeine Java-Themen 1
B Logs - txt-Datei neue Zeile anfuegen, neue Datei erstellen Allgemeine Java-Themen 6
S Zweidimensionales Array neue Zeile erzeugen Allgemeine Java-Themen 3
P Neue Zeile Plattformunabhängig Allgemeine Java-Themen 3
W Programm prüft auf webserver ob neue version vorhanden? Allgemeine Java-Themen 3
I Neue Klassenbibliothek in Klassenpfad einbinden Allgemeine Java-Themen 3
B Ausgabe auf stdout "löschen" und dafür neue Ausgab Allgemeine Java-Themen 10
M neue Thread in neuem Fenster Allgemeine Java-Themen 3
M neue Textdatei DOS/Unix-Format Allgemeine Java-Themen 11
WMaerz Der neue JDK 6 enthält keine javac.exe, tool.jar usw. Allgemeine Java-Themen 6
J Neue Objekte werden nciht angezeigt Allgemeine Java-Themen 2
T iText + neue Seite Allgemeine Java-Themen 14
A Kann keine neue Klasse erstellen. Allgemeine Java-Themen 3
G Programm erzeugt ständig neue Strings . Allgemeine Java-Themen 2
G Neue Warenwirtschaft aber sehr langsam! Allgemeine Java-Themen 3
M in jar eine neue datei per JarOutputStream hinzufügen Allgemeine Java-Themen 2
B Braucht man die neue VM 1.5 Allgemeine Java-Themen 3
F neue klassen einbinden Allgemeine Java-Themen 3
F Neue Bibliothek dem JDK hinzufügen Allgemeine Java-Themen 5
M Methodenübersicht einer Klasse einsehen Allgemeine Java-Themen 14
Jose05 Java-Klasse im extra cmd-Fenster ausführen Allgemeine Java-Themen 3
torresbig Klasse mit extends Calendar über Methoden ändern (Hirnblockade) Allgemeine Java-Themen 7
A Zweite Service Klasse beim Kompilieren Allgemeine Java-Themen 6
B Ein Objekt einer Klasse mehreren anderen Klassen zur Verfügung stellen? Allgemeine Java-Themen 6
Atten007 Java-Klasse auf macOS entpacken? Allgemeine Java-Themen 2
M Klasse durch Klassen Aufteilung verbessern, aber wo? Allgemeine Java-Themen 1
E Eine Methode einer extendeten Klasse deakitivieren Allgemeine Java-Themen 12
H Kombination Interface und Abstrakte Klasse bei Generics Allgemeine Java-Themen 3
EinNickname9 Best Practice Singleton und Singleton mit Instanz zu anderer Klasse -Pattern Allgemeine Java-Themen 30
Y ImagePanel von anderer Klasse in eine MainFrame Klasse hinzufügen. Allgemeine Java-Themen 1
Lukas2904 Schleife mit ansteuerung einer Klasse Allgemeine Java-Themen 5
d.lumpi Aus Einer Klasse auf ein Objekt einer anderen Klasse Zugreifen Allgemeine Java-Themen 1
missy72 Klassen Eigene Klasse MessageWindow ähnlich der Alert Klasse Allgemeine Java-Themen 2
Drachenbauer wie kann ich alle instanzen einer Klasse durchsehen, ohne, dass diese in einer Liste erzeugt wurden? Allgemeine Java-Themen 11
kanywayne Java programmieren: Polynom Klasse Allgemeine Java-Themen 4
L Die abzuleitende Klasse als Parameter übergeben Allgemeine Java-Themen 4
S Klassen Einfügen von unbekannter menge an Variablen in eine Klasse mithilfe von ASM Allgemeine Java-Themen 5
C Klasse mit Mockito simulieren Allgemeine Java-Themen 9
P einen public <Optinal String> in einer anderen Klasse mit einem Int vergleichen Allgemeine Java-Themen 2
S Wenn eine Klasse zwei Interfaces mit derselben Methodensignatur implementiert: welche wird aufgerufen? Allgemeine Java-Themen 15
Thallius Key/Value Table in Klasse einlesen Allgemeine Java-Themen 14
S static in Interface und Klasse Allgemeine Java-Themen 2
W Was genau sind IOTools? Kann ich stattdessen nicht die Scanner Klasse verwenden? Allgemeine Java-Themen 3
V Threads Probleme beim Aufrufen von Methoden einer anderen Klasse (Threads) Allgemeine Java-Themen 14
X Collections Gibt es eine Klasse welche die Vorteile von List und HashMap vereint, aber konstante Laufzeit (O(1)) hat in Java? Allgemeine Java-Themen 4
D javassist API Klasse in MethodCall ermitteln Allgemeine Java-Themen 8
kodela Klasse mit "gezipten" Daten Allgemeine Java-Themen 6
J Builder Klasse mit Lombok bauen Allgemeine Java-Themen 2
L Operatoren Java Reflections: Alle Methoden einer Klasse aufrufen ohne Exceptions Allgemeine Java-Themen 5
M [SOAP] - Klasse aus WSDL ausschließen Allgemeine Java-Themen 2
N Generic Type einer Generischen Klasse während der Laufzeit bekommen Allgemeine Java-Themen 2
X Klassen Klasse BreakIterator Allgemeine Java-Themen 6
R Arraylist in andere Klasse leiten und bearbeiten Allgemeine Java-Themen 10
kodela Klassen Klasse "vergisst" ihre Daten Allgemeine Java-Themen 2
pkm Kann eine ServerSocket-Klasse nicht stateful sein? Allgemeine Java-Themen 4
E Socket Dynamische Klasse von ObjectOutputStream lesen. Allgemeine Java-Themen 8
M Matcher-Klasse findet match nicht Allgemeine Java-Themen 6
cool_brivk24 Variablen abfragen von Boolean von anderer Klasse Allgemeine Java-Themen 12
S Seltsames Ergebnis mit Date-Klasse Allgemeine Java-Themen 6
J int Werte in einer anderen Klasse in Arrays speichern Allgemeine Java-Themen 3
D Warum kann ich eine (deflaut) Klasse aus einer Libary in einem anderen Projekt benutzen? Allgemeine Java-Themen 3
Neoline Klassen Singleton Klasse buchmanager Allgemeine Java-Themen 19
M Kapselung Modellierung von Intervallen: Klasse Interval Allgemeine Java-Themen 4
B Übernommene Variablen(werte) aus der Main-Klasse ändern? Allgemeine Java-Themen 9
ReinerCoder Klasse kann nicht public deklariert werden Allgemeine Java-Themen 2

Ähnliche Java Themen

Neue Themen


Oben