[英]NPEs with JavaFX's HTMLEditor
我寫了一個相對簡單的測試類:
public class Main extends Application {
@Override public void start(Stage stage) {
BorderPane root = new BorderPane();
Scene scene = new Scene(root, 400, 400);
HTMLEditor editor = new HTMLEditor();
root.setCenter(editor);
Platform.runLater(editor::requestFocus);
stage.setScene(scene);
stage.show();
}
public static void main(String[] args) {
launch(args);
}
}
如果運行此命令(編輯器將焦點放在編輯器上),則會看到此窗口看起來非常暗淡,如果輸入任何內容,我會立即收到NullPointerException
:
Exception in thread "JavaFX Application Thread" java.lang.NullPointerException
at com.sun.javafx.scene.web.skin.HTMLEditorSkin.applyTextFormatting(HTMLEditorSkin.java:1100)
at com.sun.javafx.scene.web.skin.HTMLEditorSkin.lambda$new$3(HTMLEditorSkin.java:293)
at com.sun.javafx.event.CompositeEventHandler$NormalEventHandlerRecord.handleBubblingEvent(CompositeEventHandler.java:218)
...
我最初注意到的三件事是:
HTMLEditorSkin
有關,因此我嘗試應用一個,但Eclipse通知我該類不是API。 我該如何使用它(如果應該),如果可以,我應該設置訪問限制(因為JavaFX本身也不是API)? HTMLEditor
看起來沒有重點, 默認情況下沒有選定的字體 (我認為這是引起問題的地方。) HTMLEditorSkin
來自包層次結構com.sun.javafx
而不是javafx
。 但是,看來我按照Oracle教程的第一個示例正確地完成了所有操作。
這是怎么了? 感覺這可能是一個錯誤。
嘗試的解決方案和已經收到的答案:
setHtmlText
設置初始文本。 setHtmlText("<body style='font-family: something;'>text</body>");
setStyle
設置樣式。 setStyle("-fx-font: 12 something");
出現此錯誤是因為由於存在錯誤, HtmlEditor
默認不設置字體系列,並且在您開始鍵入時沒有選擇字體,因此您將獲得NPE
。 請注意,如果在開始鍵入之前選擇了字體系列,則不會出現錯誤。
為了避免此錯誤,請升級到JDK 8u122 。 (在Kubuntu 16.10
使用jre-8u122-ea-bin-b04-linux-x64-25_oct_2016
)
PS我沒有檢查以前的版本。 這可能已在較早的發行版中修復,但存在於8u111
。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.