我有这个代码只是从资源中将HTML
文件加载到JavaFX javafx.scene.web.WebView
:
import java.awt.Dimension;
import javafx.application.Application;
import javafx.application.Platform;
import javafx.embed.swing.JFXPanel;
import javafx.scene.Scene;
import javafx.scene.layout.StackPane;
import javafx.scene.web.WebView;
import javafx.stage.Stage;
import javax.swing.JFrame;
public class Test extends Application {
JFXPanel panel;
JFrame frame;
@Override
public void start(Stage primaryStage) {
Platform.runLater(new Runnable() {
public void run() {
frame = new JFrame("Test");
WebView v = new WebView();
v.getEngine().load(getClass().getResource("htmlfile.html").toExternalForm());
StackPane root = new StackPane();
root.getChildren().add(v);
Scene scene = new Scene(root);
panel = new JFXPanel();
panel.setScene(scene);
panel.setPreferredSize(new Dimension(641, 725));
frame.setContentPane(panel);
frame.pack();
frame.setLocationRelativeTo(null);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setResizable(false);
frame.setVisible(true);
}
});
}
/**
* main method
*
* @param args the command line arguments
*/
public static void main(String[] args) {
launch(args);
}
}
htmlfile.html
就是这样:
<html>
<head>
<link rel="stylesheet" href="style.css">
</head>
<body>
<textarea id="mytextarea"></textarea>
</body>
</html>
所有内容都正确显示,唯一的问题是,如果我在WebView
中显示的textarea中键入内容,则无法将ENTER
键识别为换行符。所以事实上,当我按下ENTER
时,textarea
什么都不做。现在,如果你在浏览器中尝试上面的HTML(比如chrome或firefox),那就可以了。
为什么会这样?
我该如何解决?
答案 0 :(得分:1)
我在使用JavaFX HTMLEditor
(内部使用WebView
)的Swing应用程序中的工作中遇到了同样的问题。
这answer帮我解决了这个问题。正如另一个答案所说,这是JavaFX中的一个已知错误。