Variablen zwischen Frames

fl_ex

Bekanntes Mitglied
Hey Programmerz,

hab eine Frage bezüglich Variablenaustausch zwischen Frames bzw. Klassen...
Hab eine Klasse "Create" das ist ein Frame mit button comboboxen etc...
wenn ich auf den Speichern button klick macht er auch die printausgabe(als test)

Nun möchte ich das davor ein programm läuft wo ich dann auf "create" klicken kann, das wird dann setVisible(false) und das "create" eben "true" ....
Nun möchte ich dort werte eingeben können und die sollen dann per buttonklick in den Tree vom ersten fenster übertragen werden...

...es sind mehrere werte, also ein Return funzt da nicht ... und irgendwie muss ich den ersten "anhalten" damit das neue fenster erstmal arbeiten kann...
(hatte es mit getter und setter gemacht, aber der lief dann einfach durch ohne zu stoppen)
 
Zuletzt bearbeitet:

hdi

Top Contributor
Es gibt keine spezielle Methodik für die Verarbeitung von "Variablen zwischen Frames". Es ist so wie überall im Code: Brauchst du eine Sache, na dann muss halt im Scope eine Variable verfügbar sein die diese Sache enthält. zB so:

Java:
Tree tree = new Tree(...)
MyFrameOne = new MyFrameOne(tree); // added den Tree auf sein Content Pane
MyFrameTwo = new MyFrameTwo(tree); // nutzt den Tree in der actionPerformed des Buttons

Es gibt da aber mehrere Wege. Du kannst auch den gesamten ActionListener in das zweite Fenster hineinreichen und das klatscht den nur noch auf den Button. Oder du erstellt ein Interface "TreeDataListener" oder sowas, und dein Tree bzw das Fenster, das den Tree enthält implementiert das und registriert sich beim zweiten Frame, das dann eine gewisse Methode aufruft um alle Werte zu übergeben wenn man in diesem Frame dann den Button klickt.
 
Zuletzt bearbeitet:

hdi

Top Contributor
Wir schreiben irgendwie auch nur gleichzeitg an edit's oder ;)

Also nochmal ein konkreter Vorschlag wie solche Kommunikationen zwischen Instanzen am schönsten sind:
Java:
interface TreeDataListener{

  public void dataChanged(Data data); // oder halt (int wert1, String wert2) usw keine Ahnung wie deine Daten aussehen
}

Dein Tree oder das Frame das den Tree enthält implementert das Interface:

Java:
class FirstFrame extends JFrame implements TreeDataListener{

   private Tree myTree;

   //...

   public void dataChanged(Data data){
        myTree.setData(data); // oder was auch immer du da für nen Setter hast
   }
}

Schöner wäre wenn du ne Klasse für den Tree hast der das implementiert, nicht das ganze Frame aber ich will jetzt nicht noch eine Klasse hier schreiben ;)

Das andere Frame dann:
Java:
class Create extends JFrame{

  private TreeDataListener treeDataListener;

   public Create(TreeDataListener treeDataListener){
         this.treeDataListener = treeDataListener;
   }

   // ActionListener des Buttons in diesem Frame:
   public void actionPerformed(..){
        treeDataListener.dataChanged(new Data(textField1.getText(), myComboBox.getSelectedValue().toString());
   }
}
und dann im Programm:

Java:
FirstFrame f1 = new FirstFrame();
Create create = new Create(f1);

...alles mehr oder weniger pseudo hingerotzt jetzt hier aber so das Prinzip. Der Vorteil von dem Interface ist dass das im Design recht dynamisch ist, du könntest jetzt recht einfach das Frame wechseln etc, das ist halt jetzt recht lose gekoppelt, auch wenn es auf den ersten Blick umständlicher scheint als wenn du einfach nur das Frame übergeben würdest ;)
Man verwendet für solche Kommunikationen halt immer am besten Interfaces, dann kann man später sehr einfach noch Dinge ändern und das erweitern. zB wenn dir später noch einfällt naja eigentlich sollen noch 4 andere Frames da drin verwickelt sein machst du bei denen einfach noch implements TreeDataListener und fertig. (Musst halt dann evtl im create frame nich nur einen Listener annehmen sondern ein Array, bzw typischerweise gibt es dann eine addXXXLIstener() Methode darin)
 
Zuletzt bearbeitet:

fl_ex

Bekanntes Mitglied
Danke für die Hilfe! =)

Habs jetzt so gemacht, das ich in dem ActionListener einfach den neuen Frame erstellt habe visible gesetzt hab, da dann in den ActionListener vom Save button einfach alles reingepackt und den tree und das model vom ersten mit übergeben habe... =)

funktioniert =)

...führe jetzt einfach das was ich im ersten ausgeführt wurde... im 2. aus mit den übergebenen Werten ^^
 

hdi

Top Contributor

Das tut's immer irgendwie ;) Man sollte den Code aber immer möglichst lose koppeln, das macht ihn dynamischer und dir die Arbeit im Endeffekt leichter. Dazu gehört auch sich zu überlegen was du eigentlich wissen willst, und vorallem was du nicht wissen willst. Dein Create-Frame da sollte nicht abhängig sein von genau diesem Tree oder Model das du gerade benutzt. Was ist, wenn dir plötzlich einfällt du willst statt nem Tree lieber ne Liste anzeigen im anderen Frame? Oder beides? Dann musste den ganzen Code im Create Frame bzw im ActionListenre des Save Buttons umschreiben. Wenn du das mit Listenern machst bleibt der Code unberührt, ist halt besser... Der Save Button sollte also nur soviel wissen, dass es ein paar Instanzen gibt, die sich für diese Änderungen interessieren. Und die versteckst du hinter einem Interface. Ob das jetzt n Tree in Frame X ist oder eine JList in FrameY, oder eine Konsolenausgabe, das hat den eigentlich nichts anzugehen ;)
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
F Variablen an eine Form binden? AWT, Swing, JavaFX & SWT 2
S JavaFX Variablen in einem FXML File verwenden AWT, Swing, JavaFX & SWT 8
L Auf Variablen zugreifen AWT, Swing, JavaFX & SWT 6
S 2D-Grafik Problem mit Variablen AWT, Swing, JavaFX & SWT 4
J JavaFX Zugriff auf FXML-Variablen eines anderen Controllers AWT, Swing, JavaFX & SWT 2
Paul15 ActionListener Variablen AWT, Swing, JavaFX & SWT 13
F MouseMotionListerener & Verfügbarkeit von Variablen AWT, Swing, JavaFX & SWT 5
B Event Handling MouseListener Behält seine Variablen, auch wenn ich ein neus Objekt erstelle AWT, Swing, JavaFX & SWT 2
T Einen Variablen Wert in einem TextField AWT, Swing, JavaFX & SWT 4
H SWT NullPointerException bei Zugriff auf Variablen des Hauptfensters AWT, Swing, JavaFX & SWT 6
B Variable ist leer / Scope von Variablen AWT, Swing, JavaFX & SWT 2
P non-static variablen benutzen AWT, Swing, JavaFX & SWT 7
P Variablen in einem ActionListener zurücksetzen AWT, Swing, JavaFX & SWT 6
N Variablen in Events AWT, Swing, JavaFX & SWT 4
M Zugriff auf Variablen eines Objektes ohne sie auf static zu setzen AWT, Swing, JavaFX & SWT 9
C SWT Textfeld mit festem und variablen Inhalt AWT, Swing, JavaFX & SWT 13
O Variablen an anonyme Funktion AWT, Swing, JavaFX & SWT 10
N Variablen an JDialog übergeben AWT, Swing, JavaFX & SWT 2
hdi Fenster mit variablen Components AWT, Swing, JavaFX & SWT 3
isowiz Wie kann ich Variablen aus einer Innerklasse heraus ändern? AWT, Swing, JavaFX & SWT 5
B Variablen-Namen erfragen AWT, Swing, JavaFX & SWT 5
A problem mit variablen und dialod AWT, Swing, JavaFX & SWT 2
N JLabel o.ä. mit Variablen verknüpfen AWT, Swing, JavaFX & SWT 10
S Wie Variablen Übergabe an Dialog?? AWT, Swing, JavaFX & SWT 2
M variablen uebergabe ?? AWT, Swing, JavaFX & SWT 2
M JavaFX Abstand zwischen AnchorPane und Labels in dem HBox halten AWT, Swing, JavaFX & SWT 1
U 2dgraphics unterschied zwischen .scale und AffineTransform.getScaleInstance AWT, Swing, JavaFX & SWT 4
S JavaFX Fehler zwischen View und Controller bei MouseEvent (MVC) AWT, Swing, JavaFX & SWT 13
missy72 JavaFX TableView Spalte zwischen den Zeilen AWT, Swing, JavaFX & SWT 5
L Kommunikation zwischen Klassen / Konstruktoren bei Swing AWT, Swing, JavaFX & SWT 9
Z Swing Kann man denn abstand zwischen zwei Buttons berechnen AWT, Swing, JavaFX & SWT 5
M Kommunikation zwischen zwei Stages AWT, Swing, JavaFX & SWT 0
T JavaFX - Datenübergabe zwischen Scenes AWT, Swing, JavaFX & SWT 8
S JavaFX Unterschiede zwischen Scene Builder 2.0 und der ausgeführten App AWT, Swing, JavaFX & SWT 17
Informatiknoob AWT Zahlenraten (eine Zahl zwischen 1 und 10) AWT, Swing, JavaFX & SWT 1
ralfb1105 JavaFX Daten zwischen Controllern austauschen- neue Frage AWT, Swing, JavaFX & SWT 7
ralfb1105 JavaFX Daten zwischen Controller "austauschen" AWT, Swing, JavaFX & SWT 65
L Wörter zwischen zwei Grenzen einlesen. AWT, Swing, JavaFX & SWT 13
P Zwischen verschiedenen Panels wechseln AWT, Swing, JavaFX & SWT 3
M Schnittpunkte zwischen zwei Graphics2D Elemente ermitteln. AWT, Swing, JavaFX & SWT 5
O Focus zwischen Chat und Spiel wechselns AWT, Swing, JavaFX & SWT 3
Z Swing Drag&Drop zwischen JTable und JTree AWT, Swing, JavaFX & SWT 4
Arif AWT Unterschied zwischen RED und red AWT, Swing, JavaFX & SWT 4
D Swing Kommunikation zwischen zwei GUI's AWT, Swing, JavaFX & SWT 2
L JavaFX Verbindung zwischen Beschreibung und Listener (Codebehind Klasse) AWT, Swing, JavaFX & SWT 4
D Zwischen Null-Layouts wechseln AWT, Swing, JavaFX & SWT 2
K Wie kann ich eine Variable zwischen Tab Klassen weitergeben ? AWT, Swing, JavaFX & SWT 7
S JavaFX (Best Practise) Daten zwischen Controllern austauschen AWT, Swing, JavaFX & SWT 1
P 2D-Grafik Bogen(Arc) zwischen zwei Punkten zeichnen AWT, Swing, JavaFX & SWT 2
P Drag & Drop zwischen Panels AWT, Swing, JavaFX & SWT 0
N Swing CardLayout: Problem beim Wechsel zwischen den JPanels AWT, Swing, JavaFX & SWT 3
B Vertikale Größenänderung zwischen zwei Widgets AWT, Swing, JavaFX & SWT 2
T Swing Kompatibilitätsproblem zwischen Swing und JavaFX AWT, Swing, JavaFX & SWT 4
S Verzögerung zwischen Cursorbewegung einbauen AWT, Swing, JavaFX & SWT 1
3 Swing Vertikaler Separator zwischen JMenu's AWT, Swing, JavaFX & SWT 2
D JGridLayout zwischen Zeilen bestimmter Abstand AWT, Swing, JavaFX & SWT 3
S Unterschied zwischen id und fx:id AWT, Swing, JavaFX & SWT 5
F Swing JAVA GUI Übergabe von Werten zwischen mehreren Fenstern/Klassen AWT, Swing, JavaFX & SWT 10
B Datenübergabe zwischen Tabs und Daten speichern AWT, Swing, JavaFX & SWT 2
B Kommunikation zwischen zwei Fenstern und vorübergehende Speicherung der Eingaben AWT, Swing, JavaFX & SWT 4
B Linie zwischen 2 Elementen AWT, Swing, JavaFX & SWT 5
D animierte kameraansicht zwischen gezeichneten objekten AWT, Swing, JavaFX & SWT 4
B Swing JMenu zwischen anderen Componenten AWT, Swing, JavaFX & SWT 4
F Swing Ladebildschirm zwischen zwei SWING Frames AWT, Swing, JavaFX & SWT 11
T JTabbedPane - neuen Tab zwischen zwei anderen Tabs hinzufügen AWT, Swing, JavaFX & SWT 2
GUI-Programmer JWindow zwischen den Desktopbild und Dektopverknüpfungen AWT, Swing, JavaFX & SWT 16
Psypsy Swing SwingWorker unterschied zwischen setProgress und process AWT, Swing, JavaFX & SWT 2
propra Schnittpunkt zwischen Objekt und Kante finden AWT, Swing, JavaFX & SWT 24
H Swing Wechsel zwischen Frames AWT, Swing, JavaFX & SWT 6
S Swing Zwischenräume zwischen JPanels AWT, Swing, JavaFX & SWT 4
A Daten umherschieben zwischen zwei Klassen AWT, Swing, JavaFX & SWT 40
X zwischen 2 JPanels "elegant" wechseln AWT, Swing, JavaFX & SWT 3
B LayoutManager Positionierung zwischen zwei Layoutkomponenten AWT, Swing, JavaFX & SWT 2
N Swing DnD zwischen zwei JTrees AWT, Swing, JavaFX & SWT 2
G Unterschiedliche Pfadangabe zu Icons zwischen JApplet und JWindow? AWT, Swing, JavaFX & SWT 2
D JTabel: Überschrift, Abstand zwischen Tabellen, Spalten-Farbe ändern AWT, Swing, JavaFX & SWT 2
G Swing MigLayout: Lücken zwischen Elementen entfernen AWT, Swing, JavaFX & SWT 2
V Swing JLabel zwischen 2 JPanel hin- und herbewegen. AWT, Swing, JavaFX & SWT 12
E Drag&Drop zwischen 2 Listen AWT, Swing, JavaFX & SWT 5
M SWT DND zwischen zwei TreViewern in beide Richtungen AWT, Swing, JavaFX & SWT 10
buntuswalus Swing Datentransfer zwischen JPanels AWT, Swing, JavaFX & SWT 18
P Swing Beziehungen zwischen 3 Klassen AWT, Swing, JavaFX & SWT 4
R Swing Kommunikation zwischen Panels AWT, Swing, JavaFX & SWT 2
S Schnittstelle zwischen Haupt und Nebenfenster AWT, Swing, JavaFX & SWT 17
algorismi Unterscheiden zwischen zwei JLists AWT, Swing, JavaFX & SWT 5
F JCombobox zwischen setEditable true und false switchen AWT, Swing, JavaFX & SWT 2
I Swing JPanel Tab zwischen GUI Elementen AWT, Swing, JavaFX & SWT 6
L Swing Kommunikation zwischen JMenuBar und anderen Componenten AWT, Swing, JavaFX & SWT 2
data89 Verbindungslinien zwischen Formen auf einer "Zeichenfläche" AWT, Swing, JavaFX & SWT 2
DeeDee0815 SWT Text Widget: Zwischen Single und Password umschalten AWT, Swing, JavaFX & SWT 3
J Unterschied zwischen SwingWorker und Threads AWT, Swing, JavaFX & SWT 4
G Variblenwert zwischen zwei Klassen übergeben AWT, Swing, JavaFX & SWT 3
G Gap zwischen JButton-Rand und JButton-Icon verändern AWT, Swing, JavaFX & SWT 2
T Kommunikation zwischen Zwei GUI-Klassen AWT, Swing, JavaFX & SWT 2
T Kommunikation zwischen zwei jFrames AWT, Swing, JavaFX & SWT 4
T GridLayout, zu wenig Platz zwischen Widgets AWT, Swing, JavaFX & SWT 3
S Abstand zwischen Labeln auf 0 setzen AWT, Swing, JavaFX & SWT 6
J Unterschied zwischen nicht-statischen und statischen Klassen AWT, Swing, JavaFX & SWT 5
G Datenaustausch zwischen zwei JFrames AWT, Swing, JavaFX & SWT 3
O Zwischen mehreren Bildern wechseln AWT, Swing, JavaFX & SWT 6

Ähnliche Java Themen

Neue Themen


Oben