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

136
28 июня 2019, 01:40

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

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

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

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>
READ ALSO
Проверка на упорядоченность

Проверка на упорядоченность

Не понимаю зачем надо применить в цикле условие i < listsize () - 1; (здесь 9 итераций) Почему не просто i < list

113
Качество скриншотов в Play Market

Качество скриншотов в Play Market

Залил свое приложение в Google PlayПытаюсь добавить скриншоты

105
Ошибка при добавлении данных в Tableview

Ошибка при добавлении данных в Tableview

Добавляю данные из SQL запроса в таблицуВсё хорошо работает, но когда в записях есть поле со значением null, то ошибка

143
Выровнять текст колонки jTable по середине

Выровнять текст колонки jTable по середине

Как можно выровнять значения в колонках JTable по середине?

103