@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>
  • Вопрос задан
  • 18 просмотров
Пригласить эксперта
Ваш ответ на вопрос

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

Войти через TM ID
Похожие вопросы
BostonGene Москва
от 100 000 до 200 000 руб.
Digital Horizon Москва
от 150 000 руб.
Рекадро Ярославль
от 100 000 руб.
16 янв. 2019, в 10:30
5000 руб./за проект
16 янв. 2019, в 10:29
1000 руб./за проект