当我点击我的JavaFX应用程序的Button时,我一直在尝试在地图上显示标记.所以当我点击该按钮时,我在JSON文件中写入该位置,该文件将被加载到包含该地图的html文件中.问题是当我在浏览器中打开html页面时,它工作得很好,但在JavaFX的Web视图中没有任何反应,我不知道为什么!
这是html文件:
<!DOCTYPE html>
<html>
<head>
<title>Simple Map</title>
<meta name="viewport" content="initial-scale=1.0">
<meta charset="utf-8">
<style>
/* Always set the map height explicitly to define the size of the div
* element that contains the map. */
/*#map {
height: 100%;
}*/
#map{width:100%;height:100%;margin:auto;}
/* Optional: Makes the sample page fill the window. */
html, body {
height: 100%;
margin: 0;
padding: 0;
}
</style>
</head>
<body>
<div id="map"></div>
<script>
var map;
var marker;
// Multiple Markers
var markers = [];
var pos …Run Code Online (Sandbox Code Playgroud) 我在JavaFX WebEngine中使用JavaFX和javascript引擎来开发应用程序.我想从javascript获取反馈以进行调试.WebEngine中的控制台输出会发生什么?有什么办法可以访问它,或者在java中重定向到System.out吗?
我想要实现的实际上是浏览器的取消按钮,但使用JavaFX的webview.这是我到目前为止的代码:
Worker<Void> loadWorker = webView.getEngine().getLoadWorker();
if (loadWorker != null) {
Platform.runLater(() -> loadWorker.cancel());
}
Run Code Online (Sandbox Code Playgroud)
但它有时会起作用,有时却不起作用.
取消加载页面的webview/webengine任务的正确方法是什么?
如何在java中多次调用launch()我被赋予异常"主要错误:java.lang.IllegalStateException:不能多次调用应用程序启动"
我在我的java应用程序中创建了rest cleint,当请求到来之后调用javafx并在完成webview operarion后使用Platform.exit()方法关闭javafx窗口时打开webview.当第二个请求收到此错误时如何重新发送此错误.
JavaFx应用程序代码:
public class AppWebview extends Application {
public static Stage stage;
@Override
public void start(Stage _stage) throws Exception {
stage = _stage;
StackPane root = new StackPane();
WebView view = new WebView();
WebEngine engine = view.getEngine();
engine.load(PaymentServerRestAPI.BROWSER_URL);
root.getChildren().add(view);
engine.setJavaScriptEnabled(true);
Scene scene = new Scene(root, 800, 600);
stage.setScene(scene);
engine.setOnResized(new EventHandler<WebEvent<Rectangle2D>>() {
public void handle(WebEvent<Rectangle2D> ev) {
Rectangle2D r = ev.getData();
stage.setWidth(r.getWidth());
stage.setHeight(r.getHeight());
}
});
JSObject window = (JSObject) engine.executeScript("window");
window.setMember("app", new BrowserApp());
stage.show();
}
public static void …Run Code Online (Sandbox Code Playgroud) 我正在尝试开发一个javafx webview浏览器.我有一个用PHP开发的网站,我需要通过javafx网络浏览器显示.弹出窗口浏览器窗口是使用javascript window.load()函数生成的,pdf的内容是base64格式.
以下是显示弹出窗口的javascript代码
window.open("data:application/pdf;base64, " + <BASE64_STRING>,"_blank","menubar=no,location=no,resizable=yes,scrollbars=yes,status=yes,width=600,height=700");
Run Code Online (Sandbox Code Playgroud)
我坚持在浏览器弹出窗口中显示pdf文件.当我在chrome或safari中运行相同的网站时,它可以很好地显示带有pdf或doc文件的弹出窗口.由于javafx没有deafult的pdf支持,我可能需要一些第三方库或其他一些技术.我仍然非常耗费2天的时间来寻找解决方案.在这种情况下,有人可以帮助我吗?非常感谢你提前.
如何传递HTTP标头
JavaFX中的"接受语言","接受","接受编码"到WebEngine?我已尝试使用JavaFX的WebEngine/WebView设置cookie中指定的方法,但它不起作用.是否有任何API在Java 8中公开以实现此目的?请建议.
我想在JavaFX(8)中从WebView创建SnapShot/Screenshot/Image.
这个WebView不需要是可见的(在我的例子中).
我的问题:当WebView 不可见(或未添加到任何可见容器)时,
是否可以(以任何方式)从WebView创建屏幕截图/图像?
看看我的示例代码,当WebView(或它的父ScrollPane)可见= false时,
屏幕截图将不起作用(分别是emtpy/blank).
示例代码:
package test;
import javafx.animation.KeyFrame;
import javafx.animation.Timeline;
import javafx.application.Application;
import javafx.beans.value.ChangeListener;
import javafx.beans.value.ObservableValue;
import javafx.concurrent.Worker;
import javafx.geometry.Pos;
import javafx.scene.Scene;
import javafx.scene.SnapshotResult;
import javafx.scene.control.Label;
import javafx.scene.control.ScrollPane;
import javafx.scene.image.ImageView;
import javafx.scene.layout.VBox;
import javafx.scene.web.WebView;
import javafx.stage.Stage;
import javafx.util.Duration;
public class JavaFXApplication extends Application
{
@Override
public void start(Stage primaryStage)
{
ImageView webviewPreviewImage = new ImageView();
Label waitLabel = new Label("Please wait...");
WebView webView = new WebView();
webView.setMaxHeight(480d);
webView.setMinHeight(480d);
webView.setMaxWidth(640d); …Run Code Online (Sandbox Code Playgroud) 我正在开发一个JavaFX应用程序,它包含很少的html,css,JS文件,这些文件由内部webkit浏览器呈现.现在,问题是我们在JavaFX提供的webkit浏览器中没有得到平滑渲染的CSS动画,但Firefox或chrome中的相同代码相当平滑.
此外,没有持久性可用(目前在Java中使用变量,并通过JS进行持久性通信).
我正在寻找的是有任何方法来集成一些无头浏览器,或一些设置,使CSS动画更顺畅.我遇到的唯一问题是JxBrowser,但对于个人使用来说太昂贵了.
代码:
public class Main extends Application {
private Scene scene;
MyBrowser myBrowser;
String completeText = "";
@Override
public void start(Stage primaryStage) throws Exception{
primaryStage.setTitle("Frontend");
java.net.CookieManager manager = new java.net.CookieManager();
java.net.CookieHandler.setDefault(manager);
myBrowser = new MyBrowser();
scene = new Scene(myBrowser, 1080, 1920);
primaryStage.setScene(scene);
primaryStage.setFullScreen(true);
primaryStage.show();
// @ being the escape character
scene.setOnKeyTyped(new EventHandler<KeyEvent>() {
@Override
public void handle(KeyEvent event) {
String text = event.getCharacter();
if (text.equals("0")) {
String tempText = completeText;
completeText = "";
processText(tempText);
}else { …Run Code Online (Sandbox Code Playgroud) 我们正在尝试创建一个使用html5 canvas打开url的桌面应用程序.我们使用Java 8 JavaFX实现了它.但是我们在渲染草图时遇到了不好的反应.
这在Chrome浏览器中运行良好.是否可以在JavaFx应用程序中嵌入chrome浏览器?
我不太确定怎么说这个问题,但我会试试.我的应用程序通过单击按钮对网站运行命令.问题是在每个循环期间getLoadWorker增加1.在加载工作器中我设置了监听器.下面是它的工作原理.
MenuItem executeToHere = new MenuItem("Execute to here");
executeToHere.setOnAction(new EventHandler<ActionEvent>() {
@Override
public void handle(ActionEvent event) {
listViewStepItem item = stepListView.getSelectionModel().getSelectedItem();
int selectedIndex = stepList.getSelectionModel().getSelectedIndex();
WebBrowser browser = new WebBrowser(item.getWebView(), item.getListView());
for(int i=0; i < selectedIndex; i++){
listViewStepItem item2 = stepList.getItems().get(i);
if(item2.comboBoxSelected.contains("http://")){
browser.loadURL();
} else if(item2.comboBoxSelected.contains("enter")){
browser.enterText();
} else if(item2.comboBoxSelected.contains("click")){
browser.click();
}
}
browser.setWorker();
}
});
public class WebBrowser{
public WebBrowser(WebView fxmlWebView, WebEngine webEngine){
this.view = fxmlWebView;
this.engine = webEngine;
}
public void loadUrl(String url){
webEngine.load(url);
}
public void enterText(){ …Run Code Online (Sandbox Code Playgroud) javafx-webengine ×10
javafx ×9
java ×6
webview ×5
javafx-8 ×3
javascript ×2
css ×1
google-maps ×1
html5 ×1
java-8 ×1
webkit ×1