
На основе примера, приведенного здесь, это мой вариант SelectLevels. Просто я хочу уровень с 1 по 5 переместить в среднее положение. И тТ
Код: Выделить всё
import javafx.application.Application;
import javafx.geometry.Pos;
import javafx.scene.Scene;
import javafx.scene.control.Label;
import javafx.scene.input.MouseEvent;
import javafx.scene.layout.VBox;
import javafx.scene.paint.Color;
import javafx.scene.text.Font;
import javafx.scene.text.FontWeight;
import javafx.stage.Stage;
public class GameLevels extends Application {
@Override
public void start(Stage primaryStage) {
primaryStage.setTitle("Game Levels");
// Container for the title
VBox titleBox = new VBox();
titleBox.setAlignment(Pos.TOP_CENTER);
titleBox.setPadding(new javafx.geometry.Insets(30, 0, 0, 0));
Label title = new Label("GAME LEVELS");
title.setFont(Font.font("Arial", FontWeight.BOLD, 40));
title.setTextFill(Color.BLACK);
titleBox.getChildren().add(title);
// Container for the levels and back button
VBox levelsBox = new VBox(10);
levelsBox.setAlignment(Pos.CENTER);
Label[] levels = new Label[5];
for (int i = 0; i < 5; i++) {
levels[i] = new Label("LEVEL " + (i + 1));
levels[i].setFont(Font.font("Arial", FontWeight.NORMAL, 24));
levels[i].setTextFill(Color.BLACK);
levels[i].setOnMouseClicked(this::handleLevelClick);
levelsBox.getChildren().add(levels[i]);
}
Label back = new Label("BACK");
back.setFont(Font.font("Arial", FontWeight.NORMAL, 24));
back.setTextFill(Color.BLACK);
back.setOnMouseClicked(this::handleBackClick);
levelsBox.getChildren().add(back);
// Main container combining title and levels
VBox mainBox = new VBox();
mainBox.setAlignment(Pos.TOP_CENTER);
mainBox.getChildren().addAll(titleBox, levelsBox);
Scene scene = new Scene(mainBox, 400, 600);
scene.setFill(Color.WHITE); // Optional: Change the background color if needed
primaryStage.setScene(scene);
primaryStage.show();
}
private void handleLevelClick(MouseEvent event) {
Label source = (Label) event.getSource();
System.out.println(source.getText() + " clicked");
}
private void handleBackClick(MouseEvent event) {
System.out.println("Back clicked");
}
public static void main(String[] args) {
launch(args);
}
}
Код: Выделить всё
titleBox.setPadding(new javafx.geometry.Insets(30, 0, 0, 0));
Подробнее здесь: https://stackoverflow.com/questions/787 ... ach-titles
Мобильная версия