有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

在选择框中列出所有可用系统字体的java

我有一个选择框的场景。目的是让所有可用的系统字体都显示在选择框中,我觉得我走的是正确的道路,因为到目前为止,我已经设法让1显示在选择框中,但为什么只有1

这是密码-

import javafx.application.Application;
import javafx.collections.FXCollections;
import javafx.collections.ObservableList;
import javafx.stage.Stage;
import javafx.scene.Scene;
import javafx.scene.control.ChoiceBox;
import javafx.scene.control.SingleSelectionModel;
import javafx.scene.layout.Pane;
import javafx.scene.text.Font;

public class ChoiceBoxFonts extends Application
{
   ObservableList<String> fontType;
   ChoiceBox<String> fonts;

    public static void main(String [] args)
    {
        Application.launch(args);
    }

    public void start(Stage primaryStage) 
    {
        Pane root = new Pane();

        Font.getFamilies().stream().forEach(i ->{
            fontType =
                      FXCollections.observableArrayList(i 
                              );
        });

        // New choicebox with observable arraylist fontType
        fonts =  new ChoiceBox<String> (fontType);

        //SingleSelectionModel<String> selMod = fonts.getSelectionModel();

        root.getChildren().add(fonts);
        Scene scene = new Scene(root,200,200);
        primaryStage.setScene(scene);
        primaryStage.show();

    }
}

实验的目标是能够从选择框中选择一种字体,并使用该选择更改文本对象的字体

还有,有没有更好的用户界面可以做这样的事情?如果有大量字体,那么选择框将会非常长


共 (1) 个答案

  1. # 1 楼答案

    你只需要

    fontType = FXCollections.observableArrayList(Font.getFamilies());
    

    而不是你的迭代

    If there are a bucket load of fonts, that choice box is going to be very long!

    我可能会考虑一个^{}