Java FXML in Code eingliedern (über den Controller)

Lacritz

Lieutenant
Registriert
Okt. 2013
Beiträge
920
Heyho liebe CB'ler,

Code:
package game;

import javafx.event.Event;
import javafx.fxml.FXML;
import javafx.scene.canvas.Canvas;
import javafx.scene.control.Button;

/**
 * GameController fur die Scene(FXML) von Game
 */
public class GameController {

    @FXML
    Button Exit;

    @FXML
    Button Menu;

    @FXML
    Button Inventory;

    @FXML
    Button Crafting;

    @FXML
    Button placeholderOne;

    @FXML
    Button placeholderTwo;

    @FXML
    public Canvas canvasGame;

    @FXML
    public Canvas canvasInventory;

    @FXML
    protected void buttonPressedExit(Event e) throws Exception {        //Sobald Exit gedruckt wird --> Alles schliesst sich
        System.exit(0);                                                 //Alles schliesst sich in 0
    }

    @FXML
    protected void buttonPressedMenu(Event e) throws Exception {

    }

    @FXML
    protected void buttonPressedInventory(Event e) throws Exception {

    }

    @FXML
    protected void buttonPressedCrafting(Event e) throws Exception {

    }

    @FXML
    protected void buttonPressedplaceholderOne(Event e) throws Exception {

    }

    @FXML
    protected void buttonPressedplaceholderTwo(Event e) throws Exception {

    }


}

Ich möchte aus einer 2. Klasse (Game)
den Canvas aus meinem Controller holen , wie könnte ich das realisieren?
Bisher klappt der Button "EXIT" ohne Probleme, versuche ich aber das ganze über:

Code:
GameController gameController = new GameController;
Canvas canvas = gameController.canvasGame;

in der Klasse Game zu realisieren , geht es nicht.

Hat jemand Tipps / bessere Links als die ich finde?

Ich bedanke mich für jede Hilfe schonmal im Voraus.
 
Ich bin mir nicht ganz sicher was du meinst, aber genau damit haben wir unser projekt realisiert (ua dabei mit scenebuilder gearbeitet um die fxml-files zu erzeugen). Eventuell hilft dir das hier weiter: Accessing FXML controller class
 
Auf die FXML Datei habe ich ja zugriff, das Problem ist lediglich ,das mir der Zugriff auf den Canvas eben dieser FXML Datei fehlt.
Derzeitig wird die FXML Datei im Constructor der Klasse Game erzeugt & lässt sich dann über den GameController steuern , in dem auch eben die Zeile

"@FXML
Canvas canvasGame"

steht. Wie greife ich nun aus der Klasse Game auf eben dieses Canvas zu?

Ich Hoffe ich habe hiermit mein Problem etwas genauer erläutert!

----------------------------------------------------------------------------------------------------------------

Mein Projekt realisiere ich derzeitig ebenfalls mit dem SceneBuilder für die FXML Dateien , ansonsten benutze ich fast ausschließlich eigenen Code abgesehen der Javafx Bibliothek.
 
Zurück
Oben