jeudi 30 avril 2015
JavaFX Scene wechseln unter FX
Posted on 10:13 by verona
Heyho liebe Java'ler,
ich arbeite mich derzeitig in JavaFX ein und versuche relativ banale Dinge zu programmieren , verstehe aber derzeitig die Funktionsweise von FX nicht.
Derzeitig ist mein Problem ,dass ich 1 Menü habe das beim Klick auf "Spiel Starten" ein weiteres Menü mit "Singleplayer " und "Multiplayer" öffnen soll, hierbei funktioniert aber der scene wechseln nicht.
Es ist derzeitig also wie folgt aufgebaut: Wird auf "Start Game" geklickt wird ein Integer Wert quasi als Leitwert der Szene auf 1 gesetzt , welches dann in der Start Methode das alles wechseln sollte.
Hoffe ihr könnt mir helfen..
Mit freundlichen Grüßen
Lacritz
ich arbeite mich derzeitig in JavaFX ein und versuche relativ banale Dinge zu programmieren , verstehe aber derzeitig die Funktionsweise von FX nicht.
Derzeitig ist mein Problem ,dass ich 1 Menü habe das beim Klick auf "Spiel Starten" ein weiteres Menü mit "Singleplayer " und "Multiplayer" öffnen soll, hierbei funktioniert aber der scene wechseln nicht.
Java Code:
-
package team;
-
-
import javafx.application.Application;
-
import javafx.fxml.FXML;
-
import javafx.fxml.FXMLLoader;
-
import javafx.stage.Stage;
-
import javafx.scene.Parent;
-
import javafx.scene.Scene;
-
import javafx.scene.control.Button;
-
import javafx.scene.layout.BorderPane;
-
-
-
-
@Override
-
public void start(Stage primaryStage) {
-
-
// Showing Menu
-
-
try {
-
-
/*
-
* Gets StyleSheets of MapSource.fxml (generated with JavaFX Scene
-
* Builder 20
-
*/
-
-
/* Overwritten by "Parent root = [...]" */
-
// BorderPane root = new BorderPane();
-
-
Parent rootOne = FXMLLoader.load(getClass().getResource(
-
"menuSource.fxml"));
-
Parent rootTwo = FXMLLoader.load(getClass().getResource(
-
"menuStartSource.fxml"));
-
-
Scene menu = new Scene(rootOne, 500, 400);
-
Scene menuStart = new Scene(rootTwo, 500, 400);
-
-
if (MenuController.szene == 0) {
-
primaryStage.setScene(menu);
-
} else if (MenuController.szene == 1) {
-
primaryStage.setScene(menuStart);
-
} else {
-
primaryStage.setScene(menuStart);
-
}
-
-
// Showing the actual scene
-
primaryStage.show();
-
-
e.printStackTrace();
-
}
-
}
-
-
launch(args);
-
}
-
-
}
Java Code:
-
package team;
-
-
import javafx.fxml.FXML;
-
import javafx.scene.control.Button;
-
-
public class MenuController {
-
static int szene;
-
-
@FXML
-
Button StartGame;
-
-
@FXML
-
Button Options;
-
-
@FXML
-
Button ExitGame;
-
-
@FXML
-
Button Singleplayer;
-
-
@FXML
-
Button Multiplayer;
-
-
@FXML
-
Button Exit;
-
-
/*
-
* szene: 0 = Menu 1 = StartGame 2 = Options 3 = Exit 4 = SingleplayerStart
-
* 5 = MultiplayerStart
-
*/
-
-
@FXML
-
protected void buttonPressedMenu() {
-
szene = 0;
-
}
-
-
@FXML
-
protected void buttonPressedStartGame() {
-
szene = 1;
-
}
-
-
@FXML
-
protected void buttonPressedOptions() {
-
szene = 2;
-
}
-
-
@FXML
-
protected void buttonPressedExitGame() {
-
szene = 3;
-
}
-
-
@FXML
-
protected void buttonPressedSingleplayer() {
-
szene = 4;
-
}
-
-
@FXML
-
protected void buttonPressedMultiplayer() {
-
szene = 5;
-
}
-
}
Code:
<?xml version="1.0" encoding="UTF-8"?>
<?import javafx.scene.control.*?>
<?import java.lang.*?>
<?import javafx.scene.layout.*?>
<?import javafx.scene.layout.AnchorPane?>
<AnchorPane xmlns="http://ift.tt/Ras5Ew; xmlns:fx="http://ift.tt/1pVISuK; fx:controller="team14.MenuController">
<children>
<GridPane layoutX="-1.0" layoutY="-1.0" prefHeight="186.0" prefWidth="309.0">
<columnConstraints>
<ColumnConstraints hgrow="SOMETIMES" maxWidth="135.0" minWidth="10.0" prefWidth="30.0" />
<ColumnConstraints hgrow="SOMETIMES" maxWidth="135.0" minWidth="10.0" prefWidth="111.0" />
<ColumnConstraints hgrow="SOMETIMES" maxWidth="194.0" minWidth="0.0" prefWidth="27.0" />
<ColumnConstraints hgrow="SOMETIMES" maxWidth="182.0" minWidth="10.0" prefWidth="121.0" />
<ColumnConstraints hgrow="SOMETIMES" maxWidth="130.0" minWidth="10.0" prefWidth="30.0" />
</columnConstraints>
<rowConstraints>
<RowConstraints maxHeight="60.0" minHeight="10.0" prefHeight="31.0" vgrow="SOMETIMES" />
<RowConstraints maxHeight="60.0" minHeight="10.0" prefHeight="31.0" vgrow="SOMETIMES" />
<RowConstraints maxHeight="31.0" minHeight="0.0" prefHeight="29.0" vgrow="SOMETIMES" />
<RowConstraints minHeight="10.0" prefHeight="30.0" vgrow="SOMETIMES" />
</rowConstraints>
<children>
<Button mnemonicParsing="false" onAction="#buttonPressedMultiplayer" prefHeight="35.0" prefWidth="117.0" text="Multiplayer" GridPane.columnIndex="3" GridPane.rowIndex="1" />
<Button mnemonicParsing="false" onAction="#buttonPressedSingleplayer" prefHeight="33.0" prefWidth="115.0" text="Singleplayer" GridPane.columnIndex="1" GridPane.rowIndex="1" />
<Button alignment="CENTER" mnemonicParsing="false" onAction="#buttonPressedMenu" prefHeight="25.0" prefWidth="85.0" text="Back" GridPane.columnIndex="3" GridPane.halignment="CENTER" GridPane.rowIndex="3" GridPane.valignment="CENTER" />
</children>
</GridPane>
</children>
</AnchorPane>
Code:
<?xml version="1.0" encoding="UTF-8"?>
<?import javafx.scene.text.*?>
<?import javafx.scene.control.*?>
<?import java.lang.*?>
<?import javafx.scene.layout.*?>
<?import javafx.scene.layout.AnchorPane?>
<AnchorPane xmlns="http://ift.tt/Ras5Ew; xmlns:fx="http://ift.tt/1pVISuK; fx:controller="team14.MenuController">
<children>
<GridPane layoutX="-1.0" prefHeight="369.0" prefWidth="494.0">
<columnConstraints>
<ColumnConstraints hgrow="SOMETIMES" maxWidth="116.0" minWidth="10.0" prefWidth="100.0" />
<ColumnConstraints hgrow="SOMETIMES" maxWidth="274.0" minWidth="10.0" prefWidth="269.0" />
<ColumnConstraints hgrow="SOMETIMES" maxWidth="110.0" minWidth="0.0" prefWidth="67.0" />
</columnConstraints>
<rowConstraints>
<RowConstraints minHeight="10.0" prefHeight="30.0" vgrow="SOMETIMES" />
<RowConstraints minHeight="10.0" prefHeight="30.0" vgrow="SOMETIMES" />
<RowConstraints minHeight="10.0" prefHeight="30.0" vgrow="SOMETIMES" />
<RowConstraints minHeight="10.0" prefHeight="30.0" vgrow="SOMETIMES" />
<RowConstraints minHeight="10.0" prefHeight="30.0" vgrow="SOMETIMES" />
</rowConstraints>
<children>
<Button mnemonicParsing="false" onAction="#buttonPressedStartGame" prefHeight="48.0" prefWidth="299.0" text="Start Game" GridPane.columnIndex="1" GridPane.rowIndex="1">
<font>
<Font size="14.0" />
</font></Button>
<Button mnemonicParsing="false" onAction="#buttonPressedOptions" prefHeight="48.0" prefWidth="302.0" text="Options" GridPane.columnIndex="1" GridPane.rowIndex="2">
<font>
<Font size="14.0" />
</font></Button>
<Button mnemonicParsing="false" onAction="#buttonPressedExitGame" prefHeight="48.0" prefWidth="298.0" text="Exit Game" GridPane.columnIndex="1" GridPane.rowIndex="3">
<font>
<Font size="14.0" />
</font></Button>
</children>
</GridPane>
</children>
</AnchorPane>
Hoffe ihr könnt mir helfen..
Mit freundlichen Grüßen
Lacritz
JavaFX Scene wechseln unter FX
Categories: JavaFX Scene wechseln unter FX
Inscription à :
Publier les commentaires (Atom)
0 commentaires:
Enregistrer un commentaire