JavaFX Zugriff auf eine erzeugte Scene aus einer anderen Klasse

karlmasutra

Mitglied
Hallo zusammen,

folgendes Szenario
Spieler 1:
Befindet sich im Hauptmenü (Stage1/Scene1). Über einen Button geht er in die neue Scene in der er ein Spiel hosten kann(Stage 1, Scene2). Wenn er die Spieleinstellungen getätigt hat und auf den Button "Spiel starten" drückt kommt er in den Warteraum(Stage 1/Scene4).

Spieler 2 bis n:
Befindet sich im Hauptmenü. Über einen Button geht er in die neue Scene wo er einen Spiel beitreten kann(Stage 1/Scene 3). Wenn er die Parameter(IP,Passwort) eingegeben hat und auf den Button "Beitreten" drückt, soll er in den Warteraum kommen, der vorher von Spieler 1 erzeugt wurde.

Der Ansatz war:
- In der Klasse "SpielHosten" haben wir den Warteraum mit "new" erzeugt und benötigte Parameter übergeben
- in der Klasse "SpielBeitreten" habe wir mit
Java:
private AnsichtWarteraumController warteraumController
ein Objekt angelegt. Diesen wurde über getter-methode die Parameter vom vorher erzeugten Warteraum zugeteilt. Und in der Erstellung der Scene wurde dieses Objekt
Java:
warteraumController
angegeben.

Hier kommt aber immer eine Nullpointer Exception. Wir sind mittlerweile Ratlos was man noch machen kann.

Hier nochmal die Klassen(allerdings schon wieder auf Ausgangszustand geändert ohne die getMethoden)

Warteraum wird erzeugt aus der Klasse "SpielHosten"
Java:
             /*
             * Erzeugen Warteraum
             */

            FXMLLoader loader = [B]new[/B] FXMLLoader(getClass().getResource("/monopoly/ansicht/warteraum/AnsichtWarteraum.fxml"));

            loader.setControllerFactory(factory -> ansichtWarteraumController = [B]new[/B]
AnsichtWarteraumController(model,spielLogik,dataTransfer,bgm));

            Parent root = loader.load();

            Scene WarteraumScene = [B]new[/B] Scene(root);
            Stage stage = (Stage) ((Node) event.getSource()).getScene().getWindow();
            stage.setScene(WarteraumScene);
            stage.setFullScreen([B]true[/B]);
            stage.show();
        }

Warteraum "Erzeugung" aus der Klasse "SpielBeitreten"
Java:
FXMLLoader loader = [B]new[/B] FXMLLoader(getClass().getResource("/monopoly/ansicht/warteraum/AnsichtWarteraum.fxml"));
        loader.setControllerFactory(factory -> //warteraumcontroller muss hier rein );
       
        Parent root = loader.load();

        Scene WarteraumScene = [B]new[/B] Scene(root);
        Stage stage = (Stage) ((Node) event.getSource()).getScene().getWindow();
        stage.setScene(WarteraumScene);
        stage.setFullScreen([B]true[/B]);
        stage.show();
    }

Klasse AnsichtWarteraumController
Java:
package monopoly.ansicht.warteraum;
import java.io.IOException;
import java.net.InetAddress;
import java.net.URL;
import java.net.UnknownHostException;
import java.util.ResourceBundle;
import javafx.event.ActionEvent;
import javafx.fxml.FXML;
import javafx.fxml.FXMLLoader;
import javafx.scene.Node;
import javafx.scene.Parent;
import javafx.scene.Scene;
import javafx.scene.control.Button;
import javafx.scene.control.ListView;
import javafx.stage.Stage;
import javafx.scene.text.Text;
import monopoly.ansicht.hauptmenue.AnsichtHauptmenueController;
import monopoly.ansicht.spielumgebung.AnsichtSpielumgebungController;
import monopoly.code.backgroundmusic.BackgroundMusic;
import monopoly.code.model.Model;
import monopoly.code.netzwerk.*;
import monopoly.code.spieler.Spieler;
import monopoly.code.spiellogik.Spiellogik;


[B]public[/B] [B]class[/B] AnsichtWarteraumController {





    @FXML
    [B]private[/B] ResourceBundle resources;

    @FXML
    [B]private[/B] URL location;

    @FXML
    ListView<Spieler> listViewSpieler;

    @FXML
    [B]private[/B] Button butSpielStarten;

    @FXML
    [B]private[/B] Button butZurueck;

    @FXML
    [B]private[/B] Text ipText;


    [B]private[/B] [B]final[/B] Model model;
    [B]private[/B] Spiellogik spielLogik;
    [B]private[/B] Datatransfer dataTransfer;
    [B]private[/B] BackgroundMusic bgm;


    [B]public[/B] AnsichtWarteraumController(Model model, Spiellogik spielLogik,Datatransfer dataTransfer, BackgroundMusic bgm) {
        [B]this[/B].model = model;   
        [B]this[/B].spielLogik = spielLogik;
        [B]this[/B].dataTransfer = dataTransfer;
        [B]this[/B].bgm = bgm;
    }


    @FXML
    [B]void[/B] clickButSpielStarten(ActionEvent event) [B]throws[/B] Exception {
        FXMLLoader loader = [B]new[/B] FXMLLoader(getClass().getResource("/monopoly/ansicht/spielumgebung/AnsichtSpielumgebung.fxml"));
        loader.setControllerFactory(factory -> [B]new[/B] AnsichtSpielumgebungController(spielLogik,dataTransfer,bgm));

        Parent page = loader.load();

        Scene spielUmgebungsScene = [B]new[/B] Scene(page);
        Stage stage = (Stage) ((Node) event.getSource()).getScene().getWindow();
        stage.setScene(spielUmgebungsScene);
        stage.setFullScreen([B]true[/B]);
        stage.show();
    }

    @FXML
    [B]void[/B] clickButZurueck(ActionEvent event) [B]throws[/B] IOException {
        model.ovLeeren();
        FXMLLoader loader = [B]new[/B] FXMLLoader(getClass().getResource("/monopoly/ansicht/hauptmenue/AnsichtHauptmenue.fxml"));
        loader.setControllerFactory(factory -> [B]new[/B] AnsichtHauptmenueController(model));

        Parent page = loader.load();

        Scene HauptmenueScene = [B]new[/B] Scene(page);
        Stage stage = (Stage) ((Node) event.getSource()).getScene().getWindow();
        stage.setScene(HauptmenueScene);
        stage.setFullScreen([B]true[/B]);
        stage.show();   
    }

    @FXML
    [B]void[/B] initialize() [B]throws[/B] UnknownHostException {
        [B]assert[/B] listViewSpieler != [B]null[/B] : "fx:id=\"listViewSpieler\" was not injected: check your FXML file 'AnsichtWarteraum.fxml'.";
        [B]assert[/B] butSpielStarten != [B]null[/B] : "fx:id=\"butSpielStarten\" was not injected: check your FXML file 'AnsichtWarteraum.fxml'.";
        [B]assert[/B] butZurueck != [B]null[/B] : "fx:id=\"butZurueck\" was not injected: check your FXML file 'AnsichtWarteraum.fxml'.";
        [B]assert[/B] ipText != [B]null[/B] : "fx:id=\"ipText\" was not injected: check your FXML file 'AnsichtWarteraum.fxml'.";

        listViewSpieler.setItems(model.getOvList());
        InetAddress ip = InetAddress.[I]getLocalHost[/I] ();
        ipText.setText("Deine IP-Adresse: "+ip.getHostAddress());
    }   
}

Fals der Code nicht ausreichen, kann ich gerne auch den kompletten Code der 3 Klassen posten.

Danke schon einmal für eure Hilfe.

VG Marco
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
P JavaFX Zugriff auf Fenster/Layout-Container in eigenen Klassen AWT, Swing, JavaFX & SWT 5
J JavaFX JavaFX Splitpane - Zugriff auf die Controller der Elemente AWT, Swing, JavaFX & SWT 8
L JavaFX Zugriff auf HostServices im FXML Controller AWT, Swing, JavaFX & SWT 1
K JTable in extra Klasse, Zugriff in einer anderen klasse nicht möglich AWT, Swing, JavaFX & SWT 26
J JavaFX Zugriff auf Child AWT, Swing, JavaFX & SWT 4
J JavaFX Zugriff auf FXML-Variablen eines anderen Controllers AWT, Swing, JavaFX & SWT 2
C JavaFX Zugriff auf TextField aus einer anderen Klasse AWT, Swing, JavaFX & SWT 4
wolfgang63 JavaFX Zugriff auf Guiobjekte die über FXML erstellt wurden AWT, Swing, JavaFX & SWT 2
F JavaFX Zugriff auf Controller Methode von einer normalen Klasse aus AWT, Swing, JavaFX & SWT 4
C JavaFX Zugriff auf TableView AWT, Swing, JavaFX & SWT 2
D JavaFX Zugriff auf Controller erlangen AWT, Swing, JavaFX & SWT 4
L Zugriff auf JavaFX Controls AWT, Swing, JavaFX & SWT 3
G JavaFX NullPointerException bei Zugriff auf FXML Element AWT, Swing, JavaFX & SWT 0
P Event Handling Anfängerfrage: ActionEvent bekommt kein Zugriff auf Objekt AWT, Swing, JavaFX & SWT 3
H SWT NullPointerException bei Zugriff auf Variablen des Hauptfensters AWT, Swing, JavaFX & SWT 6
K Zugriff auf Label und Ereignisbehandlung durch zwei Handlerklassen AWT, Swing, JavaFX & SWT 3
B Zugriff auf JFrame obwohl die Klasse abgeleitet ist AWT, Swing, JavaFX & SWT 3
V JTable: Zugriff auf einzelne Zellen AWT, Swing, JavaFX & SWT 4
L Swing ActionListener zugriff auf bestimmte Elemente AWT, Swing, JavaFX & SWT 3
A Swing Zugriff auf JButton AWT, Swing, JavaFX & SWT 2
M Zugriff auf Variablen eines Objektes ohne sie auf static zu setzen AWT, Swing, JavaFX & SWT 9
I Swing Zugriff auf ein Objekt AWT, Swing, JavaFX & SWT 2
M Zugriff paralleler Threads auf selbes JTextPane AWT, Swing, JavaFX & SWT 6
M JTree mit eigenen Knoten - Zugriff auf Daten AWT, Swing, JavaFX & SWT 6
N zugriff auf frame AWT, Swing, JavaFX & SWT 5
N Swing Zugriff JButton auf JTree AWT, Swing, JavaFX & SWT 4
D Zugriff auf Instanz der GUI AWT, Swing, JavaFX & SWT 3
E Swing DB Zugriff mit JProgressBar?! AWT, Swing, JavaFX & SWT 8
R Zugriff auf Model im MVC-Design aus SwingWorker heraus AWT, Swing, JavaFX & SWT 3
H Zugriff JPanel AWT, Swing, JavaFX & SWT 3
D Swing Storage von / Zugriff auf und durch Actions AWT, Swing, JavaFX & SWT 5
S this-Zugriff auf Container höherer Ebene AWT, Swing, JavaFX & SWT 2
S Swing Zugriff auf Polyline in Grafik AWT, Swing, JavaFX & SWT 4
E Swing Zugriff auf Attribute eines JFrames über einen JDialog AWT, Swing, JavaFX & SWT 2
J Zugriff auf HtmlPanel sperren AWT, Swing, JavaFX & SWT 3
D JTree - Zugriff auf Nodes mit Object AWT, Swing, JavaFX & SWT 6
R Zugriff auf Component um addComponentListener() aufzurufen AWT, Swing, JavaFX & SWT 4
O Zugriff auf PreferenceStore aus der Business-Logik-Schicht? AWT, Swing, JavaFX & SWT 11
S NumberFormatException beim Zugriff auf Leeres JTextField AWT, Swing, JavaFX & SWT 8
S Zugriff auf statische Var in MouseEvent -> Warnung AWT, Swing, JavaFX & SWT 6
M Fehler beim Zugriff von awt-KeyListener auf swt-Shell AWT, Swing, JavaFX & SWT 2
S Zugriff auf Elemente funktioniert mit SWING nicht mehr AWT, Swing, JavaFX & SWT 5
X Zugriff auf "Oberparents" ? AWT, Swing, JavaFX & SWT 4
J JTextArea wird nicht aktualisiert bei Zugriff von außerhalb AWT, Swing, JavaFX & SWT 2
O DB-Zugriff + wie darstellen? AWT, Swing, JavaFX & SWT 6
F Problem bei Zugriff auf ComboBox Item AWT, Swing, JavaFX & SWT 4
G Zugriff auf JTextField AWT, Swing, JavaFX & SWT 2
J Zugriff auf "dynamisch erzeugte" JTextFields AWT, Swing, JavaFX & SWT 2
J Zugriff auf letzte Klasse AWT, Swing, JavaFX & SWT 4
M Zugriff auf Methoden aus einem ActionListener AWT, Swing, JavaFX & SWT 2
F Zugriff auf Oberfläche bzw Trennung GUI / Logik AWT, Swing, JavaFX & SWT 3
I selectedText: Wie bekomme ich Zugriff auf den Text? AWT, Swing, JavaFX & SWT 4
G Zugriff auf Bilder verweigern AWT, Swing, JavaFX & SWT 7
H Zugriff auf die Farbwerte eines Bildes AWT, Swing, JavaFX & SWT 6
G Zugriff auf TextField geht nicht AWT, Swing, JavaFX & SWT 5
G zugriff auf benutzeroberflächenelemente AWT, Swing, JavaFX & SWT 4
V Zugriff auf Components aus einem ActionListener AWT, Swing, JavaFX & SWT 3
M ActionListener-Zugriff durch mehrere Frames AWT, Swing, JavaFX & SWT 5
M Zugriff auf ComboBox! AWT, Swing, JavaFX & SWT 17
G Excel-Zugriff über POI: wohin mit dem Package? AWT, Swing, JavaFX & SWT 4
B Zugriff von Toolbar auf zugehörigen Frame AWT, Swing, JavaFX & SWT 6
O JTabbedPane - Zugriff auf die Elemente eines Tabs AWT, Swing, JavaFX & SWT 4
O JFileChooser - Zugriff auf Dateiname-Feld und Save-Button? AWT, Swing, JavaFX & SWT 6
E Zugriff auf JTextField nach Buttonklick AWT, Swing, JavaFX & SWT 6
jojoge wie kann ich in eine Benennung eines JButtons eine Variable einbauen? AWT, Swing, JavaFX & SWT 6
MartinNeuerlich Kann mir jemand, der einen Mac mit einem m1 oder m2-Chip hat, eine POM geben mit der Javafx-Fullscreen beim Mac mit m-Chip funktioniert? AWT, Swing, JavaFX & SWT 1
berserkerdq2 Buttons und Shapes sehen ja nach Screengröße klein oder zu groß aus, jemand eine Idee, was man tun kann? AWT, Swing, JavaFX & SWT 1
ExceptionOfExpectation Mit einer laufenden GUI Applikation eine Datei in dem Rechner löschen AWT, Swing, JavaFX & SWT 2
Jose05 Aus einer normalen Java Klasse eine FXML-Klasse laden AWT, Swing, JavaFX & SWT 12
_user_q Gibt es eine Möglichkeit, in Java alle möglichen Zeichen automatisch tippen zu lassen? AWT, Swing, JavaFX & SWT 13
J Ich kriege eine Fehler Messesage bei meinem Media Player AWT, Swing, JavaFX & SWT 8
I Einbindung eines jpg/png/icons in eine GUI AWT, Swing, JavaFX & SWT 1
mrbody234 ArrayList<Message> in eine TableView visualisieren AWT, Swing, JavaFX & SWT 2
U Gibt es eine Möglichkeit statt concatenate einen anderen Befehl zu nutzen? AWT, Swing, JavaFX & SWT 9
D Tastaturabfragen CTRL+t, CTRL+E bei eine JTable, bestehend aus JTextAteas AWT, Swing, JavaFX & SWT 4
G JavaFX Wert aus DB lesen, wenn erfolgreich automatisch eine fxml laden, möglich? AWT, Swing, JavaFX & SWT 2
Lukas2904 Wie speicher ich eine Einstellung? AWT, Swing, JavaFX & SWT 1
T Getter und Setter für eine Stage AWT, Swing, JavaFX & SWT 6
P Zwei JTables auf eine A4-Seite mit einstellbaren Rändern AWT, Swing, JavaFX & SWT 9
Monokuma 2D-Grafik Imageimport durch eine gezeichnete Form ersetzen AWT, Swing, JavaFX & SWT 16
M Eine Datei auf den Apache Server hochladen - über das Menü im JavaProgramm AWT, Swing, JavaFX & SWT 7
B JavaFX Warum wird hier eine NullPointer-Exception geworfen? AWT, Swing, JavaFX & SWT 7
VPChief Gibt es eine möglichkeit Dateien aus der jar datei zu kopieren? AWT, Swing, JavaFX & SWT 46
B Swing Sudoku: Laden / Speichern von Zahlen aus/in mehrere JTextFields aus/in eine(r) Textdatei AWT, Swing, JavaFX & SWT 9
P Swing Icon einfügen wirft eine Fehlermeldung AWT, Swing, JavaFX & SWT 3
F Variablen an eine Form binden? AWT, Swing, JavaFX & SWT 2
V Swing für jedes Kästchen eine eigene Farbe AWT, Swing, JavaFX & SWT 2
F Wie bekomme ich den Wert der ComboBox in eine Variable gespeichert welche ich für meinen ActionListener nutzen kann? AWT, Swing, JavaFX & SWT 3
W JavaFX Warum kriege ich eine Exception? AWT, Swing, JavaFX & SWT 23
Informatiknoob AWT Zahlenraten (eine Zahl zwischen 1 und 10) AWT, Swing, JavaFX & SWT 1
A eine Fehler AWT, Swing, JavaFX & SWT 9
TheJavaKid Auf eine Zeichnung im Canvas reagieren AWT, Swing, JavaFX & SWT 13
A JavaFX Daten in eine HTML-Table mit JS schreiben AWT, Swing, JavaFX & SWT 3
B JavaFX TableView eine Zeile markieren AWT, Swing, JavaFX & SWT 5
J jButton soll nach klicken eine Variable um 1 erhöhen AWT, Swing, JavaFX & SWT 2
J Compiler in der JavaFX stop() Methode warten lassen bist eine Aktion in einer anderen Scene gemacht AWT, Swing, JavaFX & SWT 5
J Swing JavaProgramm für Verschlüssen für eine Datei AWT, Swing, JavaFX & SWT 19
xYurisha JLabel Text einer geöffneten Gui über eine andere Klasse ändern! AWT, Swing, JavaFX & SWT 3
J JavaFX Die Webview stellt eine Webseite nicht dar AWT, Swing, JavaFX & SWT 0
M JavaFX Ein Labeltext eine zeitlang anzeigen dann weiter machen AWT, Swing, JavaFX & SWT 3

Ähnliche Java Themen

Neue Themen


Oben