@lonata

Как отобразить свои кастомные шрифты из папки в combobox?

Впервые знакомлюсь с combobox. По туториалу сделал отображение строковых значений в combobox.

Пишу программу на JavaFX

Мне нужно,чтобы в combobox отображались мои кастомные шрифты,которые находятся в папке с программой, а дальше чтобы при выборе одного из этих шрифтов, шрифт применялся к тексту в Label

Как это сделать?

5c1bb7178ee92962873451.jpeg

Font Controller.java:

package card;

import javafx.collections.FXCollections;
import javafx.collections.ObservableList;
import javafx.event.ActionEvent;
import javafx.fxml.FXML;
import javafx.fxml.Initializable;
import javafx.scene.control.ComboBox;
import javafx.scene.control.Label;
import java.net.URL;
import java.util.ResourceBundle;

public class FontController implements Initializable {

  @FXML  private ComboBox<String> fontSelector;
  @FXML  private Label fontLabel;

  ObservableList<String> list = FXCollections.observableArrayList("Apple", "Banana", "Peach", "Juice");


  @Override
  public void initialize(URL location, ResourceBundle resources) {

    fontSelector.setItems(list);

  }


  public void changeLabel(ActionEvent event) {
    fontLabel.setText(fontSelector.getValue());
  }
}


FXML:

<?xml version="1.0" encoding="UTF-8"?>

<?import javafx.scene.control.ComboBox?>
<?import javafx.scene.control.Label?>
<?import javafx.scene.layout.AnchorPane?>
<?import javafx.scene.text.Font?>

<AnchorPane prefHeight="300.0" prefWidth="500.0" style="-fx-background-color: green;" xmlns="http://javafx.com/javafx/10.0.1" xmlns:fx="http://javafx.com/fxml/1" fx:controller="card.FontController">
   <children>
      <ComboBox fx:id="fontSelector" layoutX="14.0" layoutY="54.0" onAction="#changeLabel" prefWidth="150.0" promptText="Select Font" />
      <Label fx:id="fontLabel" layoutX="155.0" layoutY="180.0" prefHeight="67.0" prefWidth="190.0" text="Selected Font" textFill="WHITE">
         <font>
            <Font size="23.0" />
         </font>
      </Label>
   </children>
</AnchorPane>
  • Вопрос задан
  • 632 просмотра
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы