JavaFX Stage aktualisieren

Negord

Mitglied
Moin,

ich baue gerade an einem Programm, welches in einem Array verschiedene Werte speichert.
Diese sollen in einem TilePane angezeigt werden (funktioniert soweit auch).
Nun habe ich aber eine Automatik laufen, welche den Inhalt verschiebt (im Array, das bpsw. aus 0 4 0 0 -> 4 0 0 0 wird).
Dies will ich natürlich wieder angezeigt bekommen, aber ohne dass ein neues Fenster o.Ä. aufgeht.
Da das mein erstes wirkliches Projekt mit JavaFX ist, komm ich da leider aktuell nicht weiter.
Aktuell ausprobiert habe ich bspw.
Java:
scene = new Scene(tilepane, groesse+10, groesse+10);
		Platform.runLater(new Runnable() {
		    @Override
		    public void run() {
		        // entsprechende UI Komponente updaten
				stage.setScene(scene);	
		    }
		});
Aber auch mit stage.show() usw., funktioniert alles nicht (auch ohne Platform.runLater, ...) :(

Viele Grüße,

Negord
 

dzim

Top Contributor
Das du dein Array mit wahrscheinlich Spieldaten hast, verstehe ich noch. Aber mir entzieht sich die Logik, dass du eine neue Scene zu der (bestehenden?) Stage hinzufügen möchtes.
Hast du den generell schon mit UI-Frameworks gearbeitet? Du musst nicht das komplette Fenster austauchen, sondern noch nur die Daten deines TilePanes, welches ja wohl schon korrekte Daten anzeigen kann.

Wie gesagt: Im Moment verstehe ich das Set Up noch nicht ganz! Und ich denke, du hast hier eher noch einen Denkfehler mit dem Aufbau der UI.
 

Negord

Mitglied
Das du dein Array mit wahrscheinlich Spieldaten hast, verstehe ich noch. Aber mir entzieht sich die Logik, dass du eine neue Scene zu der (bestehenden?) Stage hinzufügen möchtes.
Hast du den generell schon mit UI-Frameworks gearbeitet? Du musst nicht das komplette Fenster austauchen, sondern noch nur die Daten deines TilePanes, welches ja wohl schon korrekte Daten anzeigen kann.

Wie gesagt: Im Moment verstehe ich das Set Up noch nicht ganz! Und ich denke, du hast hier eher noch einen Denkfehler mit dem Aufbau der UI.

Ich hab bisher noch nicht mit UI-Frameworks wie bei JavaFX gearbeitet, nein.
Und das mit den "nur die Daten tauschen" entzieht sich mir ein bisschen, wie kann ich denn auf die einzelnen Tiles zugreifen?

Aktuelles Setup mit meinen Gedanken sieht so aus:
Stage mit Scene steht, zeigt die aktuellen Ergebnisse.
Es wird ein Zug gemacht -> Scene soll geändert werden, um die aktuellen Ergebnisse anzuzeigen
(So habe ich mir das gedacht, dass man quasi den Inhalt tauscht)

Vielen Dank schonmal,

Negord
 

dzim

Top Contributor
Du hast ja irgendwie, wie es z.B. die JavaDoc beschreibt ( TilePane (JavaFX 8) ) die Daten als Children hinzugefügt. Jetzt löschst du einfach alle diese Daten Wieder und fügst sie neu aus deinem Array hinzu (brute-force-Ansatz), oder holst dir die geänderten Children und updatest diese...

Scene ändern, ist wie einen komplett anderen Inhalt anzuzeigen - im Sinne von andere Gui mit anderen Eingabemöglichkeiten etc.
 

Negord

Mitglied
Alles klar.
Also jetzt habe ich ...
Java:
for(int index = 0; index <= endfeld ;index++){
			tilepane.getChildren().remove(new StackPane());
		}
(da in jedem Child ein StackPane ist... oder ist das schon falsch?:) )
Und füge dann in einer gleichlangen schleife wieder neue StackPanes hinzu
Java:
tilepane.getChildren().add(leeresFeld());
(als bspw., leeresFeld gibt einen StackPane zurück)
Wenn ich das so mache, passiert wieder garnichts außer, dass das Fenster wieder einfriert.
Wenn ich
Java:
scene = new Scene(tilepane, groesse + 10, groesse + 10);
setze (was ich jetzt weiß aber nicht so gut ist :) )kommt
Code:
java.lang.IllegalArgumentException: TilePane@1d00920[styleClass=root]is already set as root of another scene

Vielen Dank für deine Hilfe :)

Negord

Habe jetzt auch mal meine StackPanes in ein Array geladen beim erstmaligen Aufbau und diese statt dem new StackPane() benutzt, kommt aufs selbe dabei raus.

Edit2: Ich bin aber auch blöd. Ich versuche die ganze Zeit eine scene zu setzen, dabei habe ich eine Arbeiterklasse und eine Fensterklasse.
Die Fensterklasse ruft die Arbeiterklasse auf und lässt die werkeln.
Jetzt muss ich also immer die Scene zurückgeben/gegeben bekommen. Hoffe ich doch^^
 
Zuletzt bearbeitet:

dzim

Top Contributor
Die Fehlermeldung ist eigentlich selbsterklärend: Du kannst die Tilepanes nicht einfach einer anderen Scene zuweisen. Punkt. Mehr sagt es nicht aus.

Also die Children der TilePane sind Nodes. Du kannst also gern StackPanes verwenden (auch wenn sich mir, ohne den ganzen Code deiner Anwendung zu kennten - und ich will den auch gar nicht sehen :) - der Sinn davon nicht erschliesst).

Ein #add() (wie du es verwendest) fügt die neue Pane immer ans Ende der Liste. Sicher nicht das was du willst. Du musst es an den entsprechenden Index einfügen.
Oder aber immer noch: Hole dir das Pane von der richtigen Position (tilepane.getChildren().get(index)) und editiere es. Ist eigentlich nicht so schwer.
Ich hab aber irgendwie das Gefühl, dass du dir mal ein paar mehr Tutorials zu JavaFX anschauen solltest. Ein Einstiegspunkt wäre: Client Technologies: Java Platform, Standard Edition (Java SE) 8 Release 8
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
Juelin Probleme bei Stage.close() AWT, Swing, JavaFX & SWT 23
T Elemente auf vorheriger Stage, nach Wechsel der Stage ansprechen AWT, Swing, JavaFX & SWT 32
T Getter und Setter für eine Stage AWT, Swing, JavaFX & SWT 6
missy72 JavaFX Wiederholen einer IF-Abfrage beim erneuten Öffnen einer Stage AWT, Swing, JavaFX & SWT 11
OSchriever Auf Stage von FXML-Controller zugreifen AWT, Swing, JavaFX & SWT 12
temi JavaFX Mehrere Views mit Stage.setScene() oder mit Scene.setRoot()? AWT, Swing, JavaFX & SWT 7
D JavaFX Ein Parameter von einem Stage(GUI) zu einem anderen übergeben AWT, Swing, JavaFX & SWT 6
E Aktuelle Uhrzeit auf jeder Stage anzeigen lassen (JavaFX) AWT, Swing, JavaFX & SWT 2
ralfb1105 JavaFX Wie Text Label in neuem Window von Main Stage setzen? AWT, Swing, JavaFX & SWT 6
R Größe von Scene und stage an grid anpassen AWT, Swing, JavaFX & SWT 4
Neumi5694 java.awt.Window nach javafx.stage.Window AWT, Swing, JavaFX & SWT 1
S JavaFX GridPane Zellen Seitenverhätnis passend ändern mit der Stage AWT, Swing, JavaFX & SWT 0
MiMa Jumping Stage Flash AWT, Swing, JavaFX & SWT 8
K Globaler Stage- und Taskmanager AWT, Swing, JavaFX & SWT 3
MaxG. JavaFX JavaFX Stage nicht minimierbar machen AWT, Swing, JavaFX & SWT 2
K JavaFX Stage wird nicht angezeigt AWT, Swing, JavaFX & SWT 9
F JavaFX Mit einer Methode auf Stage zugreifen. AWT, Swing, JavaFX & SWT 8
E JavaFX Stage.show() in ursprünglichem Thread starten AWT, Swing, JavaFX & SWT 7
Tort-E JavaFX Stage reload, refresh ... AWT, Swing, JavaFX & SWT 3
Krappe87 JavaFX minWidth/minHeigth der Stage (des Fensters) festlegen AWT, Swing, JavaFX & SWT 4
C Java FX Probleme beim Schließen einer Stage AWT, Swing, JavaFX & SWT 11
Z JAVAFX Stage über Controller weitergeben um css-file zu laden AWT, Swing, JavaFX & SWT 4
M JavaFX Stage in einer FXML-Controllerklasse ermitteln? AWT, Swing, JavaFX & SWT 5
JAVAnnik JavaFX Maximize undecorated Stage (JavaFX 8) AWT, Swing, JavaFX & SWT 3
V kann ich in einer Klasse stage und scene deklarieren, aber in anderen Klassen Inhalte hinzufügen ? AWT, Swing, JavaFX & SWT 5
Tort-E JavaFX Mehere "Widgets" in einer Stage AWT, Swing, JavaFX & SWT 1
R JavaFX Stage.close() funktioniert nicht im jar-File AWT, Swing, JavaFX & SWT 2
C Default table model aktualisieren AWT, Swing, JavaFX & SWT 7
G JavaFX BarChart während der Runtime aktualisieren AWT, Swing, JavaFX & SWT 4
T TableView aktualisieren AWT, Swing, JavaFX & SWT 1
W JavaFX TableView aktualisieren AWT, Swing, JavaFX & SWT 1
D JavaFX Label flackert beim aktualisieren AWT, Swing, JavaFX & SWT 12
J Swing JLabel Verknüpfung aktualisieren AWT, Swing, JavaFX & SWT 3
J JavaFX Label aktualisieren AWT, Swing, JavaFX & SWT 18
M Muss man die ObservableList aktualisieren? AWT, Swing, JavaFX & SWT 3
B Bounds aller Panels aktualisieren AWT, Swing, JavaFX & SWT 0
-DD Lobby/Spielerliste aktualisieren bei Suche AWT, Swing, JavaFX & SWT 1
T JFrame aktualisieren AWT, Swing, JavaFX & SWT 2
M JavaFX Automatisches Aktualisieren der Seite AWT, Swing, JavaFX & SWT 26
ralfb1105 Swing JTable aktualisieren AWT, Swing, JavaFX & SWT 5
H JavaFX - Label aktualisieren AWT, Swing, JavaFX & SWT 1
D JTable nach INSERT aktualisieren /refreshen AWT, Swing, JavaFX & SWT 1
S Swing Mal wieder JTable Ansicht aktualisieren AWT, Swing, JavaFX & SWT 10
Z jLabel von Methode aus aktualisieren AWT, Swing, JavaFX & SWT 7
J JTextfield automatisch aus zweiter Klasse aktualisieren AWT, Swing, JavaFX & SWT 5
J Tableview Daten hinzufügen und aktualisieren AWT, Swing, JavaFX & SWT 5
lumpigerAffe Swing Jframe aktualisieren AWT, Swing, JavaFX & SWT 27
R Swing Durch JComboBox-Item eine TextArea aktualisieren AWT, Swing, JavaFX & SWT 2
C JavaFX TreeTableView aktualisieren AWT, Swing, JavaFX & SWT 10
R GUI Element in einer Methode aktualisieren (JTextPane) AWT, Swing, JavaFX & SWT 13
thobren JavaFX textarea nach setPrefRowCount Ansicht aktualisieren AWT, Swing, JavaFX & SWT 1
Regedit JavaFX Java Canvas hört ständig auf zu aktualisieren/malen AWT, Swing, JavaFX & SWT 3
W Swing JLabel jede Sekunde aktualisieren, ohne Timer zu benutzen AWT, Swing, JavaFX & SWT 4
H Combobox aktualisieren AWT, Swing, JavaFX & SWT 2
A JFace/SWT: ListViewer Inhalt nach Selection in zweitem List Viewer aktualisieren! AWT, Swing, JavaFX & SWT 5
L GUI - Jpanel - Splitpane will nicht aktualisieren AWT, Swing, JavaFX & SWT 4
2 Zeit Differenz automatisch aktualisieren AWT, Swing, JavaFX & SWT 1
A JComboBox mit Array aktualisieren AWT, Swing, JavaFX & SWT 7
S Swing JComboBox mit Listener aktualisieren AWT, Swing, JavaFX & SWT 13
O Statusleiste mit JLabel aktualisieren AWT, Swing, JavaFX & SWT 5
J JLabel während einer methode aktualisieren AWT, Swing, JavaFX & SWT 6
AssELAss Verzeichnis JFileChooser aktualisieren AWT, Swing, JavaFX & SWT 0
R AWT JLabel oder JButton aktualisieren AWT, Swing, JavaFX & SWT 1
T Int-Wert aktualisieren? AWT, Swing, JavaFX & SWT 9
A Swing JTextArea aus anderer Klasse in realtime aktualisieren AWT, Swing, JavaFX & SWT 3
S Combobox aktualisieren AWT, Swing, JavaFX & SWT 3
M Swing Aktualisieren eines JPanels nach Tasteneingabe AWT, Swing, JavaFX & SWT 2
H Swing JfreeChart aktualisieren - mit daten aus thread AWT, Swing, JavaFX & SWT 3
J GUI/Random aktualisieren? AWT, Swing, JavaFX & SWT 3
T JtextPane Zeile aktualisieren AWT, Swing, JavaFX & SWT 3
P Swing Aktualisieren von JFrame in einem onClick-Ereignis AWT, Swing, JavaFX & SWT 11
B JTable aktualisieren AWT, Swing, JavaFX & SWT 22
K SWT DataBinding, Anzahl der Zeilen aktualisieren AWT, Swing, JavaFX & SWT 4
G JRadioButton aktualisieren nicht... AWT, Swing, JavaFX & SWT 10
C ToolTip aktualisieren AWT, Swing, JavaFX & SWT 2
D Swing JComboBox aktualisieren AWT, Swing, JavaFX & SWT 4
C TextFeld in Verbindung zur ComboBox automatisch aktualisieren AWT, Swing, JavaFX & SWT 7
J JList, Anzeige aktualisieren AWT, Swing, JavaFX & SWT 7
S Inhalt einer JComboBox aktualisieren AWT, Swing, JavaFX & SWT 6
M Swing JScrollPane (Parent JTextArea) aktualisieren + neue Zeile AWT, Swing, JavaFX & SWT 5
A Swing Aktualisieren eines JPanels AWT, Swing, JavaFX & SWT 13
A JButton in einem Array aktualisieren AWT, Swing, JavaFX & SWT 8
Kenan89 JTable aktualisieren AWT, Swing, JavaFX & SWT 21
B Swing Fensterinhalt aktualisieren AWT, Swing, JavaFX & SWT 11
S Spezielle komponente aktualisieren AWT, Swing, JavaFX & SWT 9
V Swing JProgressBar aktualisieren AWT, Swing, JavaFX & SWT 14
C Combobox bei Tabellenänderung mit aktualisieren AWT, Swing, JavaFX & SWT 11
C jTable aktualisieren AWT, Swing, JavaFX & SWT 2
M TabbpedPane Anzeige aktualisieren AWT, Swing, JavaFX & SWT 6
X Swing JTree aktualisieren AWT, Swing, JavaFX & SWT 2
P AWT Fenster aktualisieren, nachdem ich JComboBox ändere AWT, Swing, JavaFX & SWT 9
D JTree nach Klick auf einen Hyperlink aktualisieren AWT, Swing, JavaFX & SWT 3
D Elternfenster vom JDialog aktualisieren oder nicht ? AWT, Swing, JavaFX & SWT 7
O JFrame: Daten alle paar Sekunden aktualisieren AWT, Swing, JavaFX & SWT 3
M Swing JLabel (mit einer Grafik) aktualisieren AWT, Swing, JavaFX & SWT 2
S JTable - Aktualisieren / Neu zeichnen. AWT, Swing, JavaFX & SWT 5
C Daten aus DB -> JTable aktualisieren klappt nicht AWT, Swing, JavaFX & SWT 16
M Zeichnung aktualisieren AWT, Swing, JavaFX & SWT 3
D Swing JTextField aus anderer Klasse aktualisieren AWT, Swing, JavaFX & SWT 2
L GUI aktualisieren? AWT, Swing, JavaFX & SWT 4

Ähnliche Java Themen

Neue Themen


Oben