javafx HTMLEditor原有的字体选择有很多,选择的时候很难定位为常用的,所以需要自定义HTMLEditor的字体选择。
可以使用lookupAll查找到字体选择的ComboBox
java
int i = 0;
limitedFonts = FXCollections.observableArrayList("SimSun", "SimHei");
//.font-menu-button是字体选择ComboBox的样式,前面需要加上 .
Set<Node> menuButton1 = customcontent.lookupAll(".font-menu-button");
for (Node candidate : menuButton1) {
if (candidate instanceof ComboBox && i == 1) {
ComboBox menuButton = (ComboBox) candidate;
List<String> removalList = FXCollections.observableArrayList();
//menuButton.getItems()这个需要HTMLEditor初始化完成,否则会返回空集合或size=0
final List<String> fontSelections = menuButton.getItems();
for (String item : fontSelections) {
if (!limitedFonts.contains(item)) {
removalList.add(item);
}
}
fontSelections.removeAll(removalList);
}
i++;
}
