WIP added FXML main screen

master
Cemal Odabasioglu 2022-05-17 10:08:42 +02:00
parent 677c3aed6d
commit b568c967c6
5 changed files with 95 additions and 6 deletions

View File

@ -1,14 +1,21 @@
package latice.application; package latice.application;
import java.net.URL;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.HashMap; import java.util.HashMap;
import java.util.Map; import java.util.Map;
import java.util.ResourceBundle;
import javafx.application.Application; import javafx.application.Application;
import javafx.event.EventHandler; import javafx.event.EventHandler;
import javafx.fxml.FXML;
import javafx.fxml.FXMLLoader;
import javafx.fxml.Initializable;
import javafx.geometry.Insets; import javafx.geometry.Insets;
import javafx.geometry.Pos; import javafx.geometry.Pos;
import javafx.scene.Parent;
import javafx.scene.Scene; import javafx.scene.Scene;
import javafx.scene.control.Button;
import javafx.scene.image.Image; import javafx.scene.image.Image;
import javafx.scene.image.ImageView; import javafx.scene.image.ImageView;
import javafx.scene.input.ClipboardContent; import javafx.scene.input.ClipboardContent;
@ -29,13 +36,14 @@ import javafx.scene.shape.Rectangle;
import javafx.scene.text.Font; import javafx.scene.text.Font;
import javafx.scene.text.Text; import javafx.scene.text.Text;
import javafx.stage.Stage; import javafx.stage.Stage;
import latice.controller.MainScreenController;
import latice.model.Color; import latice.model.Color;
import latice.model.Deck; import latice.model.Deck;
import latice.model.Rack; import latice.model.Rack;
import latice.model.Shape; import latice.model.Shape;
import latice.model.Tile; import latice.model.Tile;
public class LaticeApplicationWindow extends Application{ public class LaticeApplicationWindow extends Application {
javafx.scene.paint.Color realColor = new javafx.scene.paint.Color(0, 0, 0, 0); javafx.scene.paint.Color realColor = new javafx.scene.paint.Color(0, 0, 0, 0);
@ -46,9 +54,11 @@ public class LaticeApplicationWindow extends Application{
Tile greenLeaf = new Tile(Color.GREEN, Shape.FEATHER); Tile greenLeaf = new Tile(Color.GREEN, Shape.FEATHER);
Tile redFlower = new Tile(Color.RED, Shape.FLOWER); Tile redFlower = new Tile(Color.RED, Shape.FLOWER);
ArrayList<Tile> listRackTile = Rack.getListRackTile();
ArrayList<Image> listTileImage = Rack.getRackTileImage(); ArrayList<Image> listTileImage = Rack.getRackTileImage();
ArrayList<Tile> listOfTile = new ArrayList<Tile>(); ArrayList<Tile> listOfTile = new ArrayList<Tile>();
Map<Rectangle, Tile> assocRectangleTile = new HashMap<Rectangle, Tile>(); Map<Rectangle, Tile> assocRectangleTile = new HashMap<Rectangle, Tile>();
public static int indexTileClicked; public static int indexTileClicked;
@ -64,7 +74,10 @@ public class LaticeApplicationWindow extends Application{
@Override @Override
public void start(Stage primaryStage) throws Exception { public void start(Stage primaryStage) throws Exception{
Parent loader = FXMLLoader.load(getClass().getResource("../view/MainScreen.fxml"));
Scene menu = new Scene(loader, 1280, 720);
MainScreenController MSC = new MainScreenController();
//root layout //root layout
BorderPane root = new BorderPane(); BorderPane root = new BorderPane();
@ -89,7 +102,7 @@ public class LaticeApplicationWindow extends Application{
for (int i=1; i<10 ; i++) { for (int i=1; i<10 ; i++) {
for (int j=1; j < 10 ; j++) { for (int j=1; j < 10 ; j++) {
r[counterI][counterJ] = new Rectangle(i*52+358,j*52+3,50,50); r[counterI][counterJ] = new Rectangle(i*52+307,j*52+3,50,50);
r[counterI][counterJ].setFill(realColor.TRANSPARENT); r[counterI][counterJ].setFill(realColor.TRANSPARENT);
pane.getChildren().add(r[counterI][counterJ]); pane.getChildren().add(r[counterI][counterJ]);
System.out.println(r[counterI][counterJ]); System.out.println(r[counterI][counterJ]);
@ -137,11 +150,27 @@ public class LaticeApplicationWindow extends Application{
//With Image //With Image
Rack rack2 = new Rack(deck); Rack rack2 = new Rack(deck);
HBox rackImage = rack2.createImageTileOfRack(); HBox rackImage = rack2.createImageTileOfRack();
root.setBottom(rackImage); root.setBottom(rackImage);
ArrayList<Tile> listRackTile = Rack.getListRackTile();
//Confirm Button
Image checkMark = new Image("checkMark.png");
ImageView checkMarkView = new ImageView(checkMark);
Button confirmButton = new Button("Confirm", checkMarkView);
root.setAlignment(confirmButton, Pos.BOTTOM_LEFT);
confirmButton.setOnMouseClicked(new EventHandler<MouseEvent>() {
@Override
public void handle(MouseEvent arg0) {
// TODO on mouse clicked on confirm
}
});
root.setRight(confirmButton);
//------------------------------------------------------------------------ //------------------------------------------------------------------------
@ -228,6 +257,7 @@ public class LaticeApplicationWindow extends Application{
} }
} }
//-------------------------------------------------------------------------------------- //--------------------------------------------------------------------------------------
@ -236,7 +266,7 @@ public class LaticeApplicationWindow extends Application{
primaryStage.setResizable(false); primaryStage.setResizable(false);
primaryStage.setTitle("Latice"); primaryStage.setTitle("Latice");
primaryStage.setScene(scene); primaryStage.setScene(menu);
primaryStage.show(); primaryStage.show();
} }

View File

@ -0,0 +1,36 @@
package latice.controller;
import javafx.application.Platform;
import javafx.fxml.FXML;
import javafx.scene.Scene;
import javafx.scene.input.MouseEvent;
import javafx.scene.shape.Rectangle;
import latice.application.LaticeApplicationWindow;
public class MainScreenController extends LaticeApplicationWindow{
@FXML
private Rectangle playButton;
@FXML
private Rectangle rulesButton;
@FXML
private Rectangle exitButton;
// Event Listener on Rectangle[#playButton].onMouseClicked
@FXML
public void playButtonClicked(MouseEvent event) {
System.out.println("playButtonClicked");
}
// Event Listener on Rectangle[#rulesButton].onMouseClicked
@FXML
public void rulesButtonClicked(MouseEvent event) {
System.out.println("rulesButtonClicked");
}
// Event Listener on Rectangle[#exitButton].onMouseClicked
@FXML
public void exitButtonClicked(MouseEvent event) {
System.out.println("exitButtonClicked");
Platform.exit();
}
}

View File

@ -0,0 +1,23 @@
<?xml version="1.0" encoding="UTF-8"?>
<?import javafx.scene.image.Image?>
<?import javafx.scene.image.ImageView?>
<?import javafx.scene.layout.BorderPane?>
<?import javafx.scene.layout.Pane?>
<?import javafx.scene.shape.Rectangle?>
<BorderPane prefHeight="720.0" prefWidth="1280.0" xmlns="http://javafx.com/javafx/17" xmlns:fx="http://javafx.com/fxml/1" fx:controller="latice.controller.MainScreenController">
<center>
<Pane prefHeight="200.0" prefWidth="200.0" BorderPane.alignment="CENTER">
<children>
<ImageView fitHeight="720.0" fitWidth="1280.0" pickOnBounds="true" preserveRatio="true">
<image>
<Image url="@/mainScreen.png" />
</image>
</ImageView>
<Rectangle fx:id="playButton" arcHeight="5.0" arcWidth="5.0" fill="TRANSPARENT" height="151.0" layoutX="345.0" layoutY="175.0" onMouseClicked="#playButtonClicked" stroke="TRANSPARENT" strokeType="INSIDE" width="582.0" />
<Rectangle fx:id="rulesButton" arcHeight="5.0" arcWidth="5.0" fill="#1f93ff00" height="152.0" layoutX="346.0" layoutY="355.0" onMouseClicked="#rulesButtonClicked" stroke="TRANSPARENT" strokeType="INSIDE" width="585.0" />
<Rectangle fx:id="exitButton" arcHeight="5.0" arcWidth="5.0" fill="#1f93ff00" height="152.0" layoutX="348.0" layoutY="535.0" onMouseClicked="#exitButtonClicked" stroke="TRANSPARENT" strokeType="INSIDE" width="583.0" />
</children></Pane>
</center>
</BorderPane>

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 299 KiB