UI now uses assetmanager

This commit is contained in:
lieght
2025-10-01 15:48:23 +02:00
parent 527378ac00
commit 13bc313c17
11 changed files with 38 additions and 7 deletions

View File

@@ -4,28 +4,39 @@ import javafx.geometry.Pos;
import javafx.scene.control.Button; import javafx.scene.control.Button;
import javafx.scene.image.ImageView; import javafx.scene.image.ImageView;
import javafx.scene.layout.*; import javafx.scene.layout.*;
import org.toop.framework.asset.AssetManager;
import org.toop.framework.asset.resources.CssAsset;
import org.toop.framework.asset.resources.ImageAsset;
public final class MainMenu extends Menu { public final class MainMenu extends Menu {
public MainMenu() { public MainMenu() {
final ImageView background = new ImageView();
final Button tictactoe = createButton("Tic Tac Toe", () -> {}); final Button tictactoe = createButton("Tic Tac Toe", () -> {});
final Button reversi = createButton("Reversi", () -> {}); final Button reversi = createButton("Reversi", () -> {});
final Button sudoku = createButton("Sudoku", () -> {}); final Button sudoku = createButton("Sudoku", () -> {});
final Button battleship = createButton("Battleship", () -> {}); final Button battleship = createButton("Battleship", () -> {});
final Button other = createButton("Other", () -> {}); final Button other = createButton("Other", () -> {});
final VBox gamesBox = new VBox(tictactoe, reversi, sudoku, background, other); final VBox gamesBox = new VBox(tictactoe, reversi, sudoku, battleship, other);
gamesBox.setAlignment(Pos.TOP_CENTER); gamesBox.setAlignment(Pos.TOP_CENTER);
final Button credits = createButton("Credits", () -> {}); final Button credits = createButton("Credits", () -> {});
final Button options = createButton("Options", () -> {}); final Button options = createButton("Options", () -> {});
final Button quit = createButton("Quit", () -> {}); final Button quit = createButton("Quit", () -> {});
final VBox creditsBox = new VBox(10, credits, options, quit); final VBox creditsBox = new VBox(credits, options, quit);
creditsBox.setAlignment(Pos.BOTTOM_CENTER); creditsBox.setAlignment(Pos.BOTTOM_CENTER);
//pane = new StackPane(background, grid); VBox grid = new VBox(20, gamesBox, creditsBox);
pane.getStylesheets().add(getClass().getResource("/style/main.css").toExternalForm()); grid.setAlignment(Pos.CENTER);
ImageAsset backgroundImage = (ImageAsset) AssetManager.getByName("background.jpg").getResource();
ImageView background = new ImageView(backgroundImage.getImage());
background.setPreserveRatio(false);
background.fitWidthProperty().bind(grid.widthProperty());
background.fitHeightProperty().bind(grid.heightProperty());
pane = new StackPane(background, grid);
CssAsset css = (CssAsset) AssetManager.getByName("main.css").getResource();
pane.getStylesheets().add(css.getUrl());
} }
} }

View File

@@ -8,6 +8,8 @@ import javafx.scene.layout.StackPane;
import javafx.scene.layout.VBox; import javafx.scene.layout.VBox;
import javafx.scene.text.Text; import javafx.scene.text.Text;
import org.toop.app.App; import org.toop.app.App;
import org.toop.framework.asset.AssetManager;
import org.toop.framework.asset.resources.CssAsset;
public final class QuitMenu extends Menu { public final class QuitMenu extends Menu {
public QuitMenu() { public QuitMenu() {
@@ -43,6 +45,7 @@ public final class QuitMenu extends Menu {
StackPane.setAlignment(box, Pos.CENTER); StackPane.setAlignment(box, Pos.CENTER);
pane = modalContainer; pane = modalContainer;
pane.getStylesheets().add(getClass().getResource("/style/quit.css").toExternalForm()); CssAsset css = (CssAsset) AssetManager.getByName("quit.css").getResource();
pane.getStylesheets().add(css.getUrl());
} }
} }

View File

Before

Width:  |  Height:  |  Size: 1.9 MiB

After

Width:  |  Height:  |  Size: 1.9 MiB

View File

Before

Width:  |  Height:  |  Size: 189 KiB

After

Width:  |  Height:  |  Size: 189 KiB

View File

Before

Width:  |  Height:  |  Size: 15 MiB

After

Width:  |  Height:  |  Size: 15 MiB

View File

Before

Width:  |  Height:  |  Size: 12 KiB

After

Width:  |  Height:  |  Size: 12 KiB

View File

Before

Width:  |  Height:  |  Size: 9.0 KiB

After

Width:  |  Height:  |  Size: 9.0 KiB

View File

@@ -0,0 +1,17 @@
package org.toop.framework.asset.resources;
import java.io.File;
@FileExtension({"css"})
public class CssAsset extends BaseResource {
private final String url;
public CssAsset(File file) {
super(file);
this.url = file.toURI().toString();
}
public String getUrl() {
return url;
}
}