gpt4 book ai didi

java - 如何在 JavaFX 应用程序中显示 HTML

转载 作者:塔克拉玛干 更新时间:2023-11-03 04:50:28 30 4
gpt4 key购买 nike

我正在开发一个 FontViewer 应用程序,它根据所选的字体样式更改文本的字体。

这是我的应用程序的 Controller 类

public class FXMLDocumentController implements Initializable {

@FXML
private ListView fontListView;

@FXML
private TextArea fontTextArea;

int[] fontSizes = {34, 28, 24, 20, 18, 16, 14, 12, 11, 10, 9, 8, 7, 6};

String fontText = "";

@Override
public void initialize(URL url, ResourceBundle rb) {
ObservableList<String> fontsList = FXCollections.observableArrayList(Font.getFontNames());
fontListView.setItems(fontsList);
}

@FXML
public void handleMouseClickEvent(MouseEvent mouseEvent) {
changeFont();
}

public void changeFont() {
for (int i = 0; i < fontSizes.length; i++) {
fontText += "<p style='font-family:" + fontListView.getSelectionModel().getSelectedItem() + ";font-size:" + fontSizes[i] + "'>" + "This is Sample Text</p>";
}

fontTextArea.setText(fontText);
}
}

我的申请截图:

enter image description here

当我使用 TextArea 时,它只显示纯 HTML 代码,而不是将 HTML 转换为文本。我应该使用哪个控件来完成此操作?

P.S:我试过 TextFlow 但它不起作用,因为我需要为所需的文本显示不同的样式和字体大小。

我也看过 WebView 但不明白它如何解决上述问题。

最佳答案

使用 WebView :

@FXML
private WebView fontWebView ;

// ...

public void changeFont() {
StringBuilder sb = new StringBuilder(fontText);
for (int i = 0; i < fontSizes.length; i++) {
sb.append("<p style='font-family:")
.append(fontListView.getSelectionModel().getSelectedItem())
.append(";font-size:")
.append( fontSizes[i])
.append("'>This is Sample Text</p>");
}
fontText = sb.toString();
fontWebView.getEngine().loadContent(fontText);
}

关于java - 如何在 JavaFX 应用程序中显示 HTML,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30829164/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com