Search in sources :

Example 6 with Font

use of javafx.scene.text.Font in project Smartcity-Smarthouse by TechnionYP5777.

the class SosController method initialize.

@Override
public void initialize(final URL arg0, final ResourceBundle arg1) {
    stateLabel.setFont(new Font("Arial", 20));
    mainPane.setStyle("-fx-background-color: green");
}
Also used : Font(javafx.scene.text.Font)

Example 7 with Font

use of javafx.scene.text.Font in project Minesweeper3D by SethDamiani.

the class Main method start.

@Override
public void start(Stage primaryStage) throws Exception {
    // Main JavaFX method
    // Add all sides into the cube group
    cube.getChildren().addAll(sideA, sideB, sideC, sideD, sideE, sideF);
    // Set proper layout
    cube.setLayoutX(150);
    cube.setLayoutY(190);
    // Create the main cube object
    createCube(cube, gX, gY, game, primaryStage);
    // Properly nest cube rotation control groups
    gameRoot.getChildren().add(gY);
    //       ||
    gY.getChildren().add(gX);
    //       ||
    gX.getChildren().add(cube);
    stopwatch.setFont(new Font(45));
    bombs.setFont(new Font(45));
    gameRoot.getChildren().addAll(stopwatch, bombs);
    timeTask = new Timeline(new // Task to keep track of time
    KeyFrame(// Task to keep track of time
    Duration.seconds(1), // Task to keep track of time
    event -> {
        time++;
        stopwatch.setText("Time: " + String.valueOf(time));
    }));
    // Make timeTask run forever and ever
    timeTask.setCycleCount(Timeline.INDEFINITE);
    for (int x = 0; x < Grid.length; x++) {
        // Add the cells to their proper side groups
        for (int y = 0; y < Grid[x].length; y++) {
            for (int z = 0; z < Grid[x][y].length; z++) {
                Grid[x][y][z] = new Cell(cube, 40, 40 * y, 40 * z, x);
                switch(x) {
                    case 0:
                        sideA.getChildren().add(Grid[x][y][z].cell);
                        break;
                    case 1:
                        sideB.getChildren().add(Grid[x][y][z].cell);
                        break;
                    case 2:
                        sideC.getChildren().add(Grid[x][y][z].cell);
                        break;
                    case 3:
                        sideD.getChildren().add(Grid[x][y][z].cell);
                        break;
                    case 4:
                        sideE.getChildren().add(Grid[x][y][z].cell);
                        break;
                    case 5:
                        sideF.getChildren().add(Grid[x][y][z].cell);
                        break;
                }
            }
        }
    }
    // Place bombs randomly
    placeBombs(100);
    // Place the correct numbers according to the new bomb positions
    placeNumbers();
    // -------------------------------------------------------------------------------
    // Confirm Exit screen setup
    // new Color(1,1,1,.5)
    Text confirmExitText = new Text("Quit");
    confirmExitText.setFill(Color.WHITE);
    confirmExitText.setFont(Font.font(80));
    confirmExitText.setX(400 - confirmExitText.getLayoutBounds().getWidth() / 2);
    confirmExitText.setY(200);
    Text confirmExitSubText = new Text("Are you sure you would like to quit to the main menu?\nAll progress will be lost.");
    confirmExitSubText.setFill(Color.WHITE);
    confirmExitSubText.setFont(Font.font(20));
    confirmExitSubText.setTextAlignment(TextAlignment.CENTER);
    confirmExitSubText.setX(400 - confirmExitSubText.getLayoutBounds().getWidth() / 2);
    confirmExitSubText.setY(300);
    Text confirmExitYesText = new Text("Yes");
    confirmExitYesText.setFont(Font.font(30));
    confirmExitYesText.setFill(Color.WHITE);
    confirmExitYesText.setX(300 - confirmExitYesText.getLayoutBounds().getWidth() / 2);
    confirmExitYesText.setY(500);
    Rectangle confirmExitYesButton = new Rectangle(confirmExitYesText.getBoundsInLocal().getMinX() - 20, confirmExitYesText.getBoundsInLocal().getMinY() - 20, confirmExitYesText.getLayoutBounds().getWidth() + 40, confirmExitYesText.getLayoutBounds().getHeight() + 40);
    confirmExitYesButton.setFill(Color.TRANSPARENT);
    confirmExitYesButton.setStroke(Color.WHITE);
    confirmExitYesButton.setStrokeWidth(10);
    confirmExitYesButton.setOnMouseEntered(event -> confirmExitYesButton.setFill(new Color(1, 1, 1, .5)));
    confirmExitYesButton.setOnMouseExited(event -> confirmExitYesButton.setFill(Color.TRANSPARENT));
    confirmExitYesText.setOnMouseEntered(event -> confirmExitYesButton.setFill(new Color(1, 1, 1, .5)));
    confirmExitYesText.setOnMouseExited(event -> confirmExitYesButton.setFill(Color.TRANSPARENT));
    confirmExitYesButton.setOnMouseClicked(event -> primaryStage.setScene(menu));
    confirmExitYesText.setOnMouseClicked(event -> primaryStage.setScene(menu));
    Text confirmExitNoText = new Text("No");
    confirmExitNoText.setFont(Font.font(30));
    confirmExitNoText.setFill(Color.WHITE);
    confirmExitNoText.setX(500 - confirmExitYesText.getLayoutBounds().getWidth() / 2);
    confirmExitNoText.setY(500);
    Rectangle confirmExitNoButton = new Rectangle(confirmExitNoText.getBoundsInLocal().getMinX() - 20, confirmExitNoText.getBoundsInLocal().getMinY() - 20, confirmExitNoText.getLayoutBounds().getWidth() + 40, confirmExitNoText.getLayoutBounds().getHeight() + 40);
    confirmExitNoButton.setFill(Color.TRANSPARENT);
    confirmExitNoButton.setStroke(Color.WHITE);
    confirmExitNoButton.setStrokeWidth(10);
    confirmExitNoButton.setOnMouseEntered(event -> confirmExitNoButton.setFill(new Color(1, 1, 1, .5)));
    confirmExitNoButton.setOnMouseExited(event -> confirmExitNoButton.setFill(Color.TRANSPARENT));
    confirmExitNoText.setOnMouseEntered(event -> confirmExitNoButton.setFill(new Color(1, 1, 1, .5)));
    confirmExitNoText.setOnMouseExited(event -> confirmExitNoButton.setFill(Color.TRANSPARENT));
    confirmExitNoButton.setOnMouseClicked(event -> {
        timeTask.play();
        primaryStage.setScene(game);
    });
    confirmExitNoText.setOnMouseClicked(event -> {
        timeTask.play();
        primaryStage.setScene(game);
    });
    confirmExitRoot.getChildren().addAll(confirmExitText, confirmExitSubText, confirmExitYesText, confirmExitNoText, confirmExitYesButton, confirmExitNoButton);
    // Quit screen UI setup
    // Initialize and configure background
    Rectangle quitBox = new Rectangle(800, 700, Color.INDIANRED);
    // Initialize and configure the title
    Text quitText = new Text(260, 200, "Game Over");
    quitText.setFont(new Font(80));
    quitText.setStroke(Color.WHITE);
    quitText.setFill(Color.WHITE);
    quitText.setTextAlignment(TextAlignment.CENTER);
    quitText.setX(400 - quitText.getLayoutBounds().getWidth() / 2);
    // Initialize and configure the time text
    Text endScoreText = new Text(260, 320, "Time: ");
    endScoreText.setFont(new Font(40));
    endScoreText.setTextAlignment(TextAlignment.CENTER);
    endScoreText.setFill(Color.WHITE);
    endScoreText.setStroke(Color.WHITE);
    // Center the text within the button
    endScoreText.setX(350 - endScoreText.getLayoutBounds().getWidth() / 2);
    // Initialize and configure first name input field
    TextField firstNameInput = new TextField();
    firstNameInput.setFont(new Font(24));
    // Initialize and configure first name input label
    Text firstNameLabel = new Text("First name: ");
    firstNameLabel.setFont(new Font(28));
    firstNameLabel.setFill(Color.WHITE);
    // Initialize and configure horizontal box for first name input
    HBox firstNameBox = new HBox(5, firstNameLabel, firstNameInput);
    firstNameBox.setLayoutX(180);
    firstNameBox.setLayoutY(395);
    // Initialize and configure last name input field
    TextField lastNameInput = new TextField();
    lastNameInput.setFont(new Font(24));
    // Initialize and configure last name input label
    Text lastNameLabel = new Text("Last name: ");
    lastNameLabel.setFont(new Font(28));
    lastNameLabel.setFill(Color.WHITE);
    // Initialize and configure horizontal box for last name input
    HBox lastNameBox = new HBox(5, lastNameLabel, lastNameInput);
    lastNameBox.setLayoutX(182);
    lastNameBox.setLayoutY(450);
    // Initialize and configure continue button border
    Rectangle continueRect = new Rectangle(300, 550, 500, 70);
    continueRect.setStroke(Color.WHITE);
    continueRect.setFill(Color.TRANSPARENT);
    continueRect.setStrokeWidth(5);
    // Initialize and configure continue button text
    Text continueText = new Text("Submit and Continue");
    continueText.setFont(new Font(50));
    continueText.setFill(Color.WHITE);
    continueText.setY(600);
    continueText.setX(400 - continueText.getLayoutBounds().getWidth() / 2);
    continueRect.setWidth(continueText.getLayoutBounds().getWidth() + 40);
    continueRect.setX(400 - continueRect.getLayoutBounds().getWidth() / 2);
    // Advance to next field on enter press
    firstNameInput.setOnAction(event -> lastNameInput.requestFocus());
    // Manual game-win override
    game.addEventHandler(// Manual game-win override
    KeyEvent.KEY_PRESSED, // Manual game-win override
    event -> {
        if (event.getCode() == KeyCode.BACK_SLASH && event.isAltDown()) {
            gameWon = true;
            endScoreText.setText("Time: " + time);
            endScoreText.setX(400 - endScoreText.getLayoutBounds().getWidth() / 2);
            game.getOnMouseClicked().handle(mouseEvent);
        }
    });
    // Submit score when enter is pressed in last name entry
    lastNameInput.setOnAction(// Submit score when enter is pressed in last name entry
    event -> {
        if (gameWon) {
            String firstName = firstNameInput.getText();
            String lastName = lastNameInput.getText();
            Long date = System.currentTimeMillis() / 1000;
            highScoresMap.put(date, new HighScore(date, difficulty, firstName, lastName, time));
            refreshTableData();
            try {
                writeHighScores();
            } catch (IOException e) {
                System.out.println("ERROR: couldn't save high scores to file.");
            }
        }
        primaryStage.setScene(menu);
    });
    quitRoot.getChildren().addAll(quitBox, quitText, endScoreText, firstNameBox, lastNameBox, continueRect, continueText);
    // Process new high score data into table and .csv
    EventHandler<MouseEvent> submitScores = // Process new high score data into table and .csv
    event -> {
        if (gameWon) {
            String firstName = firstNameInput.getText();
            String lastName = lastNameInput.getText();
            Long date = System.currentTimeMillis() / 1000;
            highScoresMap.put(date, new HighScore(date, difficulty, firstName, lastName, time));
            refreshTableData();
            try {
                writeHighScores();
            } catch (IOException e) {
                System.out.println("ERROR: couldn't save high scores to file.");
            }
        }
        primaryStage.setScene(menu);
    };
    continueRect.addEventHandler(MouseEvent.MOUSE_CLICKED, submitScores);
    continueText.addEventHandler(MouseEvent.MOUSE_CLICKED, submitScores);
    // Pause screen UI setup
    Rectangle pauseBox = new Rectangle(800, 700, Color.BLACK);
    Text pauseText = new Text(260, 350, "Paused");
    pauseText.setFont(new Font(80));
    pauseText.setStroke(Color.WHITE);
    pauseText.setFill(Color.WHITE);
    pauseText.setTextAlignment(TextAlignment.CENTER);
    Text timeText = new Text(260, 430, "Time: ");
    timeText.setFont(new Font(40));
    timeText.setTextAlignment(TextAlignment.CENTER);
    timeText.setFill(Color.WHITE);
    timeText.setStroke(Color.WHITE);
    timeText.setX(250 - timeText.getLayoutBounds().getWidth() / 2);
    Text bombsText = new Text(550, 430, bombs.getText());
    bombsText.setFont(new Font(40));
    bombsText.setTextAlignment(TextAlignment.CENTER);
    bombsText.setFill(Color.WHITE);
    bombsText.setStroke(Color.WHITE);
    bombsText.setX(500 - bombsText.getLayoutBounds().getWidth() / 2);
    Text infoText = new Text("Loading");
    infoText.setFont(new Font(40));
    infoText.setTextAlignment(TextAlignment.CENTER);
    infoText.setFill(Color.WHITE);
    infoText.setStroke(Color.WHITE);
    infoText.setX(400 - infoText.getLayoutBounds().getWidth() / 2);
    infoText.setY(430);
    Rectangle resume = new Rectangle(300, 500, 200, 70);
    resume.setFill(Color.TRANSPARENT);
    resume.setStroke(Color.WHITE);
    resume.setStrokeWidth(5);
    Text resumeText = new Text("Resume");
    resumeText.setFont(new Font(50));
    resumeText.setFill(Color.WHITE);
    resumeText.setY(550);
    resumeText.setX(400 - resumeText.getLayoutBounds().getWidth() / 2);
    pauseRoot.getChildren().addAll(pauseBox, pauseText, resume, resumeText, infoText);
    EventHandler<MouseEvent> resumeButton = event -> {
        timeTask.play();
        primaryStage.setScene(game);
    };
    resume.addEventHandler(MouseEvent.MOUSE_CLICKED, resumeButton);
    resumeText.addEventHandler(MouseEvent.MOUSE_CLICKED, resumeButton);
    pause.setOnKeyPressed(event -> {
        if (event.getCode() == KeyCode.SPACE) {
            primaryStage.setScene(game);
            timeTask.play();
        } else if (event.getCode() == KeyCode.ESCAPE) {
            primaryStage.setScene(confirmExit);
        }
    });
    game.setOnKeyPressed(event -> {
        if (event.getCode() == KeyCode.SPACE) {
            timeTask.pause();
            infoText.setText("Time: " + time + "s  Bombs: " + flaggedCells + "/" + totalBombs);
            infoText.setX(400 - infoText.getLayoutBounds().getWidth() / 2);
            primaryStage.setScene(pause);
        }
    });
    // High scores UI setup
    scores.setFill(new ImagePattern(bg));
    Text scoresTitle = new Text(120, 120, "High Scores");
    scoresRoot.getChildren().add(scoresTitle);
    scoresTitle.setFont(new Font(70));
    scoresTitle.setStroke(Color.BLACK);
    scoresTitle.setStrokeWidth(5);
    scoresTitle.setTextAlignment(TextAlignment.CENTER);
    scoresTitle.setX(400 - scoresTitle.getLayoutBounds().getWidth() / 2);
    Rectangle back = new Rectangle(100, 550, 200, 70);
    back.setFill(Color.TRANSPARENT);
    back.setStroke(Color.BLACK);
    back.setStrokeWidth(5);
    back.setFill(new Color(1, 1, 1, .5));
    back.setOnMouseEntered(event -> back.setFill(new Color(1, 1, 1, .8)));
    back.setOnMouseExited(event -> back.setFill(new Color(1, 1, 1, .5)));
    scoresRoot.getChildren().add(back);
    Text backText = new Text("Back");
    backText.setFont(new Font(50));
    backText.setFill(Color.BLACK);
    backText.setY(600);
    backText.setX(200 - backText.getLayoutBounds().getWidth() / 2);
    backText.setStroke(Color.BLACK);
    backText.setStrokeWidth(3);
    backText.setOnMouseEntered(event -> back.setFill(new Color(1, 1, 1, .8)));
    backText.setOnMouseExited(event -> back.setFill(new Color(1, 1, 1, .5)));
    scoresRoot.getChildren().add(backText);
    EventHandler<MouseEvent> backButton = event -> primaryStage.setScene(menu);
    back.addEventHandler(MouseEvent.MOUSE_CLICKED, backButton);
    backText.addEventHandler(MouseEvent.MOUSE_CLICKED, backButton);
    Rectangle deleteScore = new Rectangle(500, 550, 200, 70);
    deleteScore.setFill(Color.TRANSPARENT);
    deleteScore.setStroke(Color.BLACK);
    deleteScore.setStrokeWidth(5);
    deleteScore.setFill(new Color(1, 1, 1, .5));
    deleteScore.setOnMouseEntered(event -> deleteScore.setFill(new Color(1, 1, 1, .8)));
    deleteScore.setOnMouseExited(event -> deleteScore.setFill(new Color(1, 1, 1, .5)));
    scoresRoot.getChildren().add(deleteScore);
    Text deleteScoresText = new Text("Delete");
    deleteScoresText.setFont(new Font(50));
    deleteScoresText.setFill(Color.BLACK);
    deleteScoresText.setY(600);
    deleteScoresText.setX(600 - deleteScoresText.getLayoutBounds().getWidth() / 2);
    deleteScoresText.setStroke(Color.BLACK);
    deleteScoresText.setStrokeWidth(3);
    deleteScoresText.setOnMouseEntered(event -> deleteScore.setFill(new Color(1, 1, 1, .8)));
    deleteScoresText.setOnMouseExited(event -> deleteScore.setFill(new Color(1, 1, 1, .5)));
    scoresRoot.getChildren().add(deleteScoresText);
    // Delete selected high score from table and .csv
    EventHandler<MouseEvent> deleteScoreButton = // Delete selected high score from table and .csv
    event -> {
        if (table.getSelectionModel().getSelectedIndex() == -1)
            return;
        HighScore current = (HighScore) table.getSelectionModel().getSelectedItem();
        highScoresMap.remove(Long.parseLong(current.getRawID()));
        refreshTableData();
        try {
            writeHighScores();
        } catch (IOException e) {
            System.out.println("ERROR: couldn't save high scores to file.");
        }
    };
    deleteScore.addEventHandler(MouseEvent.MOUSE_CLICKED, deleteScoreButton);
    deleteScoresText.addEventHandler(MouseEvent.MOUSE_CLICKED, deleteScoreButton);
    CheckBox editable = new CheckBox("Edit mode");
    editable.setSelected(true);
    editable.setLayoutX(630);
    editable.setLayoutY(30);
    editable.setFont(Font.font("Tahoma", FontWeight.BLACK, 18));
    scoresRoot.getChildren().add(editable);
    // High scores table setup
    table = new TableView();
    table.setLayoutX(100);
    table.setLayoutY(200);
    table.setPrefWidth(600);
    table.setPrefHeight(300);
    table.setEditable(true);
    EventHandler<TableColumn.CellEditEvent> fieldEditCommit = event -> {
        if (table.getSelectionModel().getSelectedIndex() == -1)
            return;
        HighScore current = (HighScore) table.getSelectionModel().getSelectedItem();
        switch(event.getTableColumn().getId()) {
            case "Difficulty":
                highScoresMap.get(Long.parseLong(current.getRawID())).setDifficulty((String) event.getNewValue());
                break;
            case "First Name":
                highScoresMap.get(Long.parseLong(current.getRawID())).setFirstName((String) event.getNewValue());
                break;
            case "Last Name":
                highScoresMap.get(Long.parseLong(current.getRawID())).setLastName((String) event.getNewValue());
                break;
        }
        try {
            writeHighScores();
        } catch (IOException e) {
            System.out.println("Error saving scores");
        }
        refreshTableData();
    };
    table.setStyle(".list-view .scroll-bar:horizontal .increment-arrow,.list-view .scroll-bar:horizontal .decrement-arrow,.list-view .scroll-bar:horizontal .increment-button,.list-view .scroll-bar:horizontal .decrement-button {-fx-padding:0;}");
    IDCol.setCellValueFactory(new PropertyValueFactory<HighScore, String>("ID"));
    IDCol.prefWidthProperty().bind(table.widthProperty().multiply(0.3));
    IDCol.setId("ID");
    IDCol.setSortable(false);
    IDCol.setResizable(false);
    difficultyCol.setCellValueFactory(new PropertyValueFactory<HighScore, String>("difficulty"));
    difficultyCol.setCellFactory(TextFieldTableCell.forTableColumn());
    difficultyCol.setOnEditCommit(fieldEditCommit);
    difficultyCol.prefWidthProperty().bind(table.widthProperty().multiply(0.175));
    difficultyCol.setId("Difficulty");
    difficultyCol.setSortable(false);
    difficultyCol.setResizable(false);
    firstNameCol.setCellValueFactory(new PropertyValueFactory<HighScore, String>("firstName"));
    firstNameCol.setCellFactory(TextFieldTableCell.forTableColumn());
    firstNameCol.setOnEditCommit(fieldEditCommit);
    firstNameCol.prefWidthProperty().bind(table.widthProperty().multiply(0.175));
    firstNameCol.setId("First Name");
    firstNameCol.setSortable(false);
    firstNameCol.setResizable(false);
    lastNameCol.setCellValueFactory(new PropertyValueFactory<HighScore, String>("lastName"));
    lastNameCol.setCellFactory(TextFieldTableCell.forTableColumn());
    lastNameCol.setOnEditCommit(fieldEditCommit);
    lastNameCol.prefWidthProperty().bind(table.widthProperty().multiply(0.175));
    lastNameCol.setId("Last Name");
    lastNameCol.setSortable(false);
    lastNameCol.setResizable(false);
    timeCol.setCellValueFactory(new PropertyValueFactory<HighScore, String>("time"));
    timeCol.prefWidthProperty().bind(table.widthProperty().multiply(0.172));
    timeCol.setId("Time");
    timeCol.setSortable(true);
    timeCol.setResizable(false);
    table.getSortOrder().setAll(timeCol);
    timeCol.setSortType(TableColumn.SortType.ASCENDING);
    table.getColumns().addAll(IDCol, difficultyCol, firstNameCol, lastNameCol, timeCol);
    table.setOnMousePressed(event -> table.getSortOrder().setAll(timeCol));
    MenuItem tableDelete = new MenuItem("Delete");
    tableDelete.setOnAction(event -> {
        if (table.getSelectionModel().getSelectedIndex() == -1)
            return;
        HighScore current = (HighScore) table.getSelectionModel().getSelectedItem();
        highScoresMap.remove(Long.parseLong(current.getRawID()));
        refreshTableData();
    });
    editable.setOnAction(event -> {
        if (event.getSource() instanceof CheckBox) {
            CheckBox checkBox = (CheckBox) event.getSource();
            if (checkBox.isSelected()) {
                difficultyCol.setEditable(true);
                firstNameCol.setEditable(true);
                lastNameCol.setEditable(true);
            } else {
                difficultyCol.setEditable(false);
                firstNameCol.setEditable(false);
                lastNameCol.setEditable(false);
            }
        }
    });
    // Search abilities setup
    table.setPlaceholder(new Label("Search did not return any results."));
    ObservableList<String> searchOptions = FXCollections.observableArrayList("Date", "Difficulty", "First Name", "Last Name", "Time");
    ComboBox searchSelector = new ComboBox(searchOptions);
    searchSelector.getSelectionModel().select(2);
    searchSelector.setLayoutX(585 - searchSelector.getLayoutBounds().getWidth() / 2);
    searchSelector.setLayoutY(160);
    TextField search = new TextField();
    search.setPromptText("Search");
    search.setPrefWidth(480);
    search.setPrefHeight(searchSelector.getHeight());
    search.setLayoutX(100);
    search.setLayoutY(160);
    // Execute search on selection mode change
    searchSelector.setOnAction(event -> refreshTableData(search.getText(), (String) searchSelector.getSelectionModel().getSelectedItem()));
    // Execute search on any keystroke
    search.setOnKeyReleased(event -> {
        String query = search.getText();
        refreshTableData(query, (String) searchSelector.getSelectionModel().getSelectedItem());
    });
    scoresRoot.getChildren().addAll(table, searchSelector, search);
    // Menu setup
    menu.setFill(new ImagePattern(bg));
    Text title = new Text(120, 120, "3D Minesweeper");
    menuRoot.getChildren().add(title);
    title.setFont(new Font(70));
    title.setStroke(Color.BLACK);
    title.setStrokeWidth(5);
    title.setTextAlignment(TextAlignment.CENTER);
    title.setX(400 - title.getLayoutBounds().getWidth() / 2);
    Text name = new Text(150, 200, "Computer Science (ICS3U-01) FST\nBy Seth Damiani");
    menuRoot.getChildren().add(name);
    name.setFont(new Font(30));
    name.setTextAlignment(TextAlignment.CENTER);
    name.setStroke(Color.BLACK);
    name.setStrokeWidth(2);
    name.setX(400 - name.getLayoutBounds().getWidth() / 2);
    Rectangle easy = new Rectangle(250, 300, 300, 75);
    menuRoot.getChildren().add(easy);
    easy.setStroke(Color.BLACK);
    easy.setStrokeWidth(5);
    easy.setFill(new Color(1, 1, 1, .5));
    easy.setOnMouseEntered(event -> easy.setFill(new Color(1, 1, 1, .8)));
    easy.setOnMouseExited(event -> easy.setFill(new Color(1, 1, 1, .5)));
    Text easyText = new Text(400, 337.5, "Easy");
    menuRoot.getChildren().add(easyText);
    easyText.setFont(new Font(50));
    easyText.setTextAlignment(TextAlignment.CENTER);
    easyText.setStroke(Color.BLACK);
    easyText.setStrokeWidth(3);
    easyText.setX(400 - easyText.getLayoutBounds().getWidth() / 2);
    easyText.setY(350);
    easyText.setOnMouseEntered(event -> easy.setFill(new Color(1, 1, 1, .8)));
    easyText.setOnMouseExited(event -> easy.setFill(new Color(1, 1, 1, .5)));
    Rectangle medium = new Rectangle(250, 400, 300, 75);
    menuRoot.getChildren().add(medium);
    medium.setStroke(Color.BLACK);
    medium.setStrokeWidth(5);
    medium.setFill(Color.TRANSPARENT);
    medium.setFill(new Color(1, 1, 1, .5));
    medium.setOnMouseEntered(event -> medium.setFill(new Color(1, 1, 1, .8)));
    medium.setOnMouseExited(event -> medium.setFill(new Color(1, 1, 1, .5)));
    Text mediumText = new Text(400, 337.5, "Medium");
    menuRoot.getChildren().add(mediumText);
    mediumText.setFont(new Font(50));
    mediumText.setTextAlignment(TextAlignment.CENTER);
    mediumText.setStroke(Color.BLACK);
    mediumText.setStrokeWidth(3);
    mediumText.setX(400 - mediumText.getLayoutBounds().getWidth() / 2);
    mediumText.setY(450);
    mediumText.setOnMouseEntered(event -> medium.setFill(new Color(1, 1, 1, .8)));
    mediumText.setOnMouseExited(event -> medium.setFill(new Color(1, 1, 1, .5)));
    Rectangle hard = new Rectangle(250, 500, 300, 75);
    menuRoot.getChildren().add(hard);
    hard.setStroke(Color.BLACK);
    hard.setStrokeWidth(5);
    hard.setFill(Color.TRANSPARENT);
    hard.setFill(new Color(1, 1, 1, .5));
    hard.setOnMouseEntered(event -> hard.setFill(new Color(1, 1, 1, .8)));
    hard.setOnMouseExited(event -> hard.setFill(new Color(1, 1, 1, .5)));
    Text hardText = new Text(400, 337.5, "Hard");
    menuRoot.getChildren().add(hardText);
    hardText.setFont(new Font(50));
    hardText.setTextAlignment(TextAlignment.CENTER);
    hardText.setStroke(Color.BLACK);
    hardText.setStrokeWidth(3);
    hardText.setX(400 - hardText.getLayoutBounds().getWidth() / 2);
    hardText.setY(550);
    hardText.setOnMouseEntered(event -> hard.setFill(new Color(1, 1, 1, .8)));
    hardText.setOnMouseExited(event -> hard.setFill(new Color(1, 1, 1, .5)));
    Rectangle highscores = new Rectangle(600, 550, 150, 100);
    menuRoot.getChildren().add(highscores);
    highscores.setStroke(Color.BLACK);
    highscores.setStrokeWidth(5);
    highscores.setFill(Color.TRANSPARENT);
    highscores.setFill(new Color(1, 1, 1, .5));
    highscores.setOnMouseEntered(event -> highscores.setFill(new Color(1, 1, 1, .8)));
    highscores.setOnMouseExited(event -> highscores.setFill(new Color(1, 1, 1, .5)));
    Text highscoresText = new Text("High\nScores");
    menuRoot.getChildren().add(highscoresText);
    highscoresText.setFont(new Font(40));
    highscoresText.setTextAlignment(TextAlignment.CENTER);
    highscoresText.setStroke(Color.BLACK);
    highscoresText.setStrokeWidth(3);
    highscoresText.setX(675 - highscoresText.getLayoutBounds().getWidth() / 2);
    highscoresText.setY(590);
    highscoresText.setOnMouseEntered(event -> highscores.setFill(new Color(1, 1, 1, .8)));
    highscoresText.setOnMouseExited(event -> highscores.setFill(new Color(1, 1, 1, .5)));
    Rectangle exit = new Rectangle(50, 550, 150, 100);
    menuRoot.getChildren().add(exit);
    exit.setStroke(Color.BLACK);
    exit.setStrokeWidth(5);
    exit.setFill(Color.TRANSPARENT);
    exit.setFill(new Color(1, 1, 1, .5));
    exit.setOnMouseEntered(event -> exit.setFill(new Color(1, 1, 1, .8)));
    exit.setOnMouseExited(event -> exit.setFill(new Color(1, 1, 1, .5)));
    Text exitText = new Text("Exit");
    menuRoot.getChildren().add(exitText);
    exitText.setFont(new Font(40));
    exitText.setTextAlignment(TextAlignment.CENTER);
    exitText.setStroke(Color.BLACK);
    exitText.setStrokeWidth(3);
    exitText.setX(125 - exitText.getLayoutBounds().getWidth() / 2);
    exitText.setY(610);
    exitText.setOnMouseEntered(event -> exit.setFill(new Color(1, 1, 1, .8)));
    exitText.setOnMouseExited(event -> exit.setFill(new Color(1, 1, 1, .5)));
    // Handle click on easy button
    EventHandler<MouseEvent> easyButton = event -> {
        resetGame();
        placeBombs(50);
        totalBombs = 50;
        flaggedCells = 0;
        placeNumbers();
        bombs.setText("Bombs: " + flaggedCells + "/" + totalBombs);
        difficulty = "Easy";
        primaryStage.setScene(game);
        time = 0;
        timeTask.play();
    };
    easy.addEventHandler(MouseEvent.MOUSE_CLICKED, easyButton);
    easyText.addEventHandler(MouseEvent.MOUSE_CLICKED, easyButton);
    // Handle click on medium button
    EventHandler<MouseEvent> mediumButton = event -> {
        resetGame();
        placeBombs(100);
        totalBombs = 100;
        flaggedCells = 0;
        placeNumbers();
        bombs.setText("Bombs: " + flaggedCells + "/" + totalBombs);
        difficulty = "Medium";
        primaryStage.setScene(game);
        time = 0;
        timeTask.play();
    };
    medium.addEventHandler(MouseEvent.MOUSE_CLICKED, mediumButton);
    mediumText.addEventHandler(MouseEvent.MOUSE_CLICKED, mediumButton);
    // Handle click on hard button
    EventHandler<MouseEvent> hardButton = event -> {
        resetGame();
        placeBombs(150);
        totalBombs = 150;
        flaggedCells = 0;
        placeNumbers();
        bombs.setText("Bombs: " + flaggedCells + "/" + totalBombs);
        difficulty = "Hard";
        primaryStage.setScene(game);
        time = 0;
        timeTask.play();
    };
    hard.addEventHandler(MouseEvent.MOUSE_CLICKED, hardButton);
    hardText.addEventHandler(MouseEvent.MOUSE_CLICKED, hardButton);
    EventHandler<MouseEvent> exitButton = event -> System.exit(0);
    exit.addEventHandler(MouseEvent.MOUSE_CLICKED, exitButton);
    exitText.addEventHandler(MouseEvent.MOUSE_CLICKED, exitButton);
    EventHandler<MouseEvent> highScoresButton = event -> primaryStage.setScene(scores);
    highscoresText.addEventHandler(MouseEvent.MOUSE_CLICKED, highScoresButton);
    highscores.addEventHandler(MouseEvent.MOUSE_CLICKED, highScoresButton);
    readHighScores();
    refreshTableData();
    // Continuously check if game has been won or lost
    game.setOnMouseClicked(event -> {
        if (gameLost) {
            timeTask.stop();
            endScoreText.setText("Time: " + time);
            endScoreText.setX(400 - endScoreText.getLayoutBounds().getWidth() / 2);
            quitBox.setFill(Color.INDIANRED);
            quitText.setText("You Lost");
            quitText.setX(400 - quitText.getLayoutBounds().getWidth() / 2);
            firstNameBox.setVisible(false);
            lastNameBox.setVisible(false);
            endScoreText.setVisible(false);
            continueText.setText("Menu");
            continueText.setX(400 - continueText.getLayoutBounds().getWidth() / 2);
            continueRect.setWidth(continueText.getLayoutBounds().getWidth() + 40);
            continueRect.setX(400 - continueRect.getLayoutBounds().getWidth() / 2);
            primaryStage.setScene(quit);
        }
        if (gameWon) {
            timeTask.stop();
            quitBox.setFill(Color.FORESTGREEN);
            quitText.setText("You Won!");
            quitText.setX(400 - quitText.getLayoutBounds().getWidth() / 2);
            firstNameBox.setVisible(true);
            lastNameBox.setVisible(true);
            endScoreText.setVisible(true);
            endScoreText.setText("Time: " + time);
            continueText.setText("Submit & Continue");
            continueText.setX(400 - continueText.getLayoutBounds().getWidth() / 2);
            continueRect.setWidth(continueText.getLayoutBounds().getWidth() + 40);
            continueRect.setX(400 - continueRect.getLayoutBounds().getWidth() / 2);
            primaryStage.setScene(quit);
        }
    });
    primaryStage.setTitle("Minesweeper 3D - Seth Damiani");
    primaryStage.setResizable(false);
    primaryStage.setScene(menu);
    primaryStage.show();
}
Also used : EventHandler(javafx.event.EventHandler) FontWeight(javafx.scene.text.FontWeight) Scene(javafx.scene.Scene) MouseButton(javafx.scene.input.MouseButton) java.util(java.util) Point3D(javafx.geometry.Point3D) javafx.scene.control(javafx.scene.control) Rotate(javafx.scene.transform.Rotate) MouseEvent(javafx.scene.input.MouseEvent) FXCollections(javafx.collections.FXCollections) TextFieldTableCell(javafx.scene.control.cell.TextFieldTableCell) Application(javafx.application.Application) TextAlignment(javafx.scene.text.TextAlignment) RotateTransition(javafx.animation.RotateTransition) PrintWriter(java.io.PrintWriter) KeyCode(javafx.scene.input.KeyCode) HBox(javafx.scene.layout.HBox) Color(javafx.scene.paint.Color) KeyFrame(javafx.animation.KeyFrame) PropertyValueFactory(javafx.scene.control.cell.PropertyValueFactory) Font(javafx.scene.text.Font) FileWriter(java.io.FileWriter) Timeline(javafx.animation.Timeline) ImagePattern(javafx.scene.paint.ImagePattern) Rectangle(javafx.scene.shape.Rectangle) IOException(java.io.IOException) KeyEvent(javafx.scene.input.KeyEvent) Group(javafx.scene.Group) File(java.io.File) Text(javafx.scene.text.Text) Duration(javafx.util.Duration) Interpolator(javafx.animation.Interpolator) Stage(javafx.stage.Stage) ObservableList(javafx.collections.ObservableList) Image(javafx.scene.image.Image) HBox(javafx.scene.layout.HBox) Rectangle(javafx.scene.shape.Rectangle) Font(javafx.scene.text.Font) ImagePattern(javafx.scene.paint.ImagePattern) TextFieldTableCell(javafx.scene.control.cell.TextFieldTableCell) MouseEvent(javafx.scene.input.MouseEvent) Color(javafx.scene.paint.Color) Text(javafx.scene.text.Text) IOException(java.io.IOException) Timeline(javafx.animation.Timeline) KeyFrame(javafx.animation.KeyFrame)

Example 8 with Font

use of javafx.scene.text.Font in project Gargoyle by callakrsos.

the class FontViewComposite method initialize.

@FXML
public void initialize() {
    Font defaultFont = FxUtil.FONTUtil.getDefaultFont();
    String name = defaultFont.getName();
    double size = defaultFont.getSize();
    String style = defaultFont.getStyle();
    FontStyle fontStyle = new FontStyle(defaultFont);
    FontWeight fontWeight = fontStyle.getWeight();
    int weight = fontWeight.getWeight();
    cbFontNames.setValue(name);
    cbFontStyles.setValue(style);
    sliderFontSize.setValue(size);
    sliderFontWeight.setValue(weight);
    loadFontNames();
    loadFontStyles();
    loadFontWeights();
    printSelectFontInfo(defaultFont);
    cbFontNames.valueProperty().addListener((oba, o, n) -> {
        printSelectFontInfo(Font.font(n));
        loadFont();
    });
    cbFontStyles.valueProperty().addListener((oba, o, n) -> {
        loadFont();
    });
    sliderFontSize.valueProperty().addListener((oba, o, n) -> {
        loadFont();
    });
    sliderFontWeight.valueProperty().addListener((oba, o, n) -> {
        loadFont();
    });
    cbFontWeight.valueProperty().addListener((oba, o, n) -> {
        updateFontWeightByName();
    });
    cbFontNames.setDisable(true);
}
Also used : FontWeight(javafx.scene.text.FontWeight) Font(javafx.scene.text.Font) FXML(javafx.fxml.FXML)

Example 9 with Font

use of javafx.scene.text.Font in project Gargoyle by callakrsos.

the class FontViewComposite method loadFont.

/**
	 * @작성자 : KYJ
	 * @작성일 : 2016. 12. 2.
	 */
private void loadFont() {
    FontWeight fontWeight = FontWeight.findByWeight((int) sliderFontWeight.getValue());
    FontPosture fontStyle = FontPosture.findByName(cbFontStyles.getValue());
    double fontSize = sliderFontSize.getValue();
    String fontName = cbFontNames.getValue();
    LOGGER.debug("{} {} {} {}", fontName, fontWeight, fontStyle, fontSize);
    Font font = Font.font(fontName, fontWeight, fontStyle, fontSize);
    if (font != null)
        lblPreviewText.setFont(font);
}
Also used : FontPosture(javafx.scene.text.FontPosture) FontWeight(javafx.scene.text.FontWeight) Font(javafx.scene.text.Font)

Example 10 with Font

use of javafx.scene.text.Font in project Gargoyle by callakrsos.

the class PropertyChangeExam method start.

@Override
public void start(Stage primaryStage) throws Exception {
    TextArea textArea = new TextArea("");
    Button button = new Button("ssss");
    button.setStyle("-fx-base: red;");
    button.setFont(new Font(55));
    Button button2 = new Button("ssss2");
    // button2.textProperty().bind(button.textProperty());
    // button2.styleProperty().bind(button.styleProperty());
    // button2.getStyleClass().addAll(button.getStyleClass());
    propertyCopy2(button, button2);
    //
    // button.setVisible(false);
    // propertyCopy(button, button2);
    // List<CssMetaData<? extends Styleable, ?>> cssMetaData =
    // button.getCssMetaData();
    // cssMetaData.forEach(cssMeta -> {
    // String property = cssMeta.getProperty();
    // System.out.print(property);
    // try {
    // String ss = String.valueOf(cssMeta.getInitialValue(null));
    //
    // System.out.println(" : " + ss);
    // } catch (NullPointerException e) {
    //
    // }
    //
    // });
    // button.setStyle(button.getStyle());
    // button2.styleProperty().set(button.getStyle());
    // button2.setSkin(button.getSkin());
    // button2.getCssMetaData().clear();
    // button2.getCssMetaData().addAll(button.getControlCssMetaData());
    // button2.fire();
    //
    // ExpressionHelper.fireValueChangedEvent(helper);
    // button2.getCssMetaData().addAll(button.getControlCssMetaData());
    // button2.textProperty().bind(button.textProperty());
    // button2.styleProperty().bind(button.styleProperty());
    // button2.visibleProperty().bind(button.visibleProperty());
    // button2.disableProperty().bind(button.disableProperty());
    // button2.fontProperty().bind(button.fontProperty());
    textArea.textProperty().addListener(new ChangeListener<String>() {

        @Override
        public void changed(ObservableValue<? extends String> oba, String oldval, String newval) {
            button.setStyle(newval);
            button2.setStyle(newval);
        }
    });
    AnchorPane root = new AnchorPane(new HBox(textArea, button, button2));
    Scene scene = new Scene(root);
    primaryStage.setScene(scene);
    primaryStage.show();
}
Also used : HBox(javafx.scene.layout.HBox) TextArea(javafx.scene.control.TextArea) Button(javafx.scene.control.Button) Scene(javafx.scene.Scene) AnchorPane(javafx.scene.layout.AnchorPane) Font(javafx.scene.text.Font)

Aggregations

Font (javafx.scene.text.Font)10 FontWeight (javafx.scene.text.FontWeight)3 Text (javafx.scene.text.Text)3 IOException (java.io.IOException)2 Scene (javafx.scene.Scene)2 HBox (javafx.scene.layout.HBox)2 Circle (javafx.scene.shape.Circle)2 Line (javafx.scene.shape.Line)2 Agent (aima.core.agent.Agent)1 Map (aima.core.environment.map.Map)1 Point2D (aima.core.util.math.geom.shapes.Point2D)1 BufferedReader (java.io.BufferedReader)1 File (java.io.File)1 FileWriter (java.io.FileWriter)1 InputStream (java.io.InputStream)1 InputStreamReader (java.io.InputStreamReader)1 PrintWriter (java.io.PrintWriter)1 URL (java.net.URL)1 URLConnection (java.net.URLConnection)1 java.util (java.util)1