import java.util.List; import javafx.beans.value.ChangeListener; import javafx.beans.value.ObservableValue; import javafx.scene.Scene; import javafx.scene.text.*; import javafx.scene.control.ComboBox; import javafx.scene.layout.VBox; import javafx.application.Application; import javafx.stage.Stage; public class FontNamesApp extends Application { static final String multilingual = "(Latin) English français Deutsch \n" + "Português italiano svenska español\n" + "(zh) \u7b80\u4f53\u4e2d\u6587\n" + "(zt) \u7e41\u9ad4\u4e2d\u6587\n" + "(ja) \u65e5\u672c\u8a9e\n" + "(ko) \ud55c\uad6d\uc778\n"; public static void main(String[] args) { Application.launch(FontNamesApp.class, args); } Text text; double fontSize = 18.0; double space = 10.0; ComboBox cb; @Override public void start(Stage stage) { VBox root = new VBox(); Scene scene = new Scene(root, 600, 400); stage.setScene(scene); cb = new ComboBox(); List fontNames = Font.getFontNames(); for (int i = 0; i < fontNames.size(); i++) { cb.getItems().add(fontNames.get(i)); } cb.getSelectionModel().select(fontNames.get(0)); cb.getSelectionModel().selectedItemProperty().addListener(new ChangeListener() { public void changed(ObservableValue ov, Object t, Object t1) { String fontName = (String) cb.getSelectionModel().getSelectedItem(); text.setFont(new Font(fontName, fontSize)); } }); text = new Text(multilingual); text.setFont(new Font(fontNames.get(0), fontSize)); root.getChildren().addAll(cb, text); root.setSpacing(space); cb.requestFocus(); stage.setTitle(System.getProperty("javafx.runtime.version")); stage.show(); } }