Tag: javafx

检测WebView中的超链接hover并打印链接

我想从WebView添加hover的超链接并将其显示在角落中。 我怎样才能实现? 它应该像Chromesfunction: 实施例 – 铬 – 截图 带有许多链接的示例WebView代码: import javafx.application.Application; import javafx.scene.Group; import javafx.scene.Scene; import javafx.scene.control.ScrollPane; import javafx.scene.web.WebEngine; import javafx.scene.web.WebView; import javafx.stage.Stage; public class core extends Application { @Override public void start(final Stage stage) { Scene scene = new Scene(new Group()); final WebView browser = new WebView(); final WebEngine webEngine = browser.getEngine(); ScrollPane scrollPane […]

从Java调用JavaScript时出错

我试图从Java调用JavaFx WebView中的JavaScript,但我得到: 线程“JavaFX Application Thread”中的exceptionnetscape.javascript.JSException:TypeError:undefined不是函数 at com.sun.webkit.dom.JSObject.fwkMakeException(JSObject.java:128) at com.sun.webkit.WebPage.twkExecuteScript(Native Method) at com.sun.webkit.WebPage.executeScript(WebPage.java:1439) 在javafx.scene.web.WebEngine.executeScript(WebEngine.java:982) .java文件 private WebView emailSubject() { String pageURL = “D:myproject\\src\\resources\\WEB_INF\\forms\\readMail\\emailBody.html”; pageURL = pageURL.replace(“\\”, “/”); webView = new WebView(); webView.setMaxHeight(52); webEngine = webView.getEngine(); emailSubject = getHTMLMailSubject(); webEngine.getLoadWorker().stateProperty().addListener((ov, oldState, newState) -> { if (newState == State.SUCCEEDED) { webEngine.executeScript(“testCheckMate(\”” + emailSubject + “\”);”); } }); webEngine.load(“file:” […]

获取JavaFX控制器中单击的Object的id的更好方法

我正在寻找一种更好的方法来获取此对象的事件处理程序中被点击对象的id。 我已经发现了这个: javafx将fx:id传递给fxml onAction方法中的控制器或参数 但这对我不起作用。 现在我正在使用节点类的getId()函数,如下所示: Button btn = (Button) event.getSource(); String id = btn.getId(); 但我想这个方法不仅仅用于按钮。

如何在JavaFX中的Accordion中的TitledPanes之间添加填充

我想在Accordion TitledPane之间添加填充( Accordion间距)。 问题在于,当扩展TitledPane时,下一个TitledPane的外观会被破坏。 TitledPane未展开 一个TitledPane扩大了 我使用了以下CSS: .titled-pane { -fx-skin: “com.sun.javafx.scene.control.skin.TitledPaneSkin”; -fx-text-fill: -fx-text-base-color; -fx-padding: 0.5em; } 一张图片显示2 TitledPane未展开之间的分离,另一张图片显示第二张TitledPane打开第一TitledPane后的外观。

在JavaFX中启用/禁用按钮

如何在特定条件下禁用按钮? 例如,我有许多文本字段和按钮,当这些文本字段为空时,应禁用其中一个按钮。 我已经有了这个代码。 if(txtID.getText().isEmpty()&&txtG.getText().isEmpty() &&txtBP.getText().isEmpty()&&txtD.getText().isEmpty() &&txtSP.getText().isEmpty()&&txtCons.getText().isEmpty()){ btnAdd.setDisable(true); } else{ btnAdd.setDisable(false); } 有更简单的方法吗? 此外,如果我在这些区域添加文本,按钮是否应该重新启用它自己?

Netbeans Java(JavaFX)本机打包以及其他文件和文件夹

如何在本机打包Java应用程序时包含其他文件和文件夹(配置文件)? 构建项目时,我已将构建文件设置为创建目录并将其他文件复制到dist目录。 我的正常构建(没有本机打包)将导致此目录结构: -> dist -> lib -> application.jar -> config folder //additional folder -> another additional folder //additional folder 现在,我想构建我的本机安装程序(安装程序),其中包含与我的应用程序和运行时一起提取的附加文件夹/文件。 基本上,当我的本机安装程序运行时,它将创建这些文件: -> app -> lib -> application.jar -> package.cfg -> runtime -> jre -> applcation.exe -> application.ico -> unins000.dat -> unins000.exe 我的其他文件和文件夹未包含在我的安装程序中。 我想让我的安装程序提取这些额外的文件,最好像这样 -> app -> lib -> config folder //additional folder -> another […]

JavaFX节点的Focus Listener

我是JavaFX的初学者。 我真的陷入了困境。 :(对不起,如果我的英语很差。 我的JavaFX程序中有两个堆栈窗格。 我想为这两个堆栈窗格添加一个焦点监听器。 它应该是这样的,当我点击一个堆栈窗格时,它应该激活此堆栈窗格的焦点获取方法。 一旦我单击另一个堆栈窗格,第一个堆栈窗格应该调用其焦点丢失方法,并且应该调用当前堆栈窗格的焦点获取方法。 就像我们在Swing包中有焦点事件一样。 目前我试过这个: stackPane.focusedProperty().addListener(new ChangeListener() { @Override public void changed(ObservableValue observable, Boolean oldValue, Boolean newValue) { if (newValue.booleanValue()) { focusGained(stackPane); } else { focusLost(stackPane); } } }); private void focusGained(StackPane stackPane){ System.out.println(“Focus Gained.”); } private void focusLost(StackPane stackPane){ System.out.println(“Focus Lost.”); } 我还试图在堆栈窗格上设置焦点遍历属性,即 stackPane.setFocusTraversable(true); 这些都不能正常工作。 当我运行它时,输出只显示这3行,无论我点击堆栈窗格多少次。 Focus Gained. Focus Lost. […]

如何在Android项目中使用JavaFX活动? (Kokos样本项目)

我正在尝试运行javafxports示例项目Kokos,因为我想在Android Studio中构建的应用程序中使用JavaFX组件,但无法正确构建它,我可以构建所有其他示例,但这种混合方法不起作用。 当我构建时,我只是得到一个黑屏并且错误“java.lang.ClassNotFoundException:没有找到类”org.javafxports.kokos.Main“在路径上:DexPathList [[zip file”/data/app/org.javafxports .kokos-2 / base.apk “]” 据我所知,没有任何kokos类实际上构建在apk中,因此它无法找到它们,但我无法找出原因,这是我能找到的这种方法的唯一样本。 是否有人能够成功构建和运行Kokos样本,如果是,是否需要进行任何修改? 或者,是否有另一个在这样的Android项目中使用JavaFX组件的例子,我可以将其用作基础? 我只是希望能够拥有一个由原生Android活动组成的应用程序,但能够启动JavaFX活动。 给出的错误消息是: 02-01 21:43:16.406 17575-17575/org.javafxports.kokos V/DalvikLauncher: Launch JavaFX application on DALVIK vm. 02-01 21:43:16.409 17575-17575/org.javafxports.kokos V/DalvikLauncher: We have JavaFX on our current (base) classpath, registered exit listener 02-01 21:43:16.410 17575-17575/org.javafxports.kokos E/DalvikLauncher: Launch failed with exception. java.lang.ClassNotFoundException: Didn’t find class “org.javafxports.kokos.Main” on path: DexPathList[[zip […]

ProgressBar不适用于fxml文件和控制器

所以我用这个链接来设置我的进度条,当我运行这段代码时,它运行得非常好。 但是,通过我的设置,我似乎无法获得实际更新的进度条… progressBar.getProgress()实际上获得了正确的进度,但UI未更新。 这是迄今为止的代码: Main.java public class Main extends Application { @Override public void start(Stage primaryStage) { try { FXMLLoader loader = new FXMLLoader(Main.class.getResource(“ProgressBarLayout.fxml”)); AnchorPane root = (AnchorPane) loader.load(); Scene scene = new Scene(root); primaryStage.setScene(scene); primaryStage.show(); } catch(Exception e) { e.printStackTrace(); } } public static void main(String[] args) { launch(args); } } ProgressBarController.java public class […]

如何在JavaFX中的特定点检测节点?

如何在JavaFX中的特定点获取Node? 在Java Swing中,有一个方法SwingUtilities.getDeepestComponentAt 。 有没有支持Swing的JavaFX方法? 在JavaFx中, javafx.scene.Node.impl_pickNode(double parentX, double parentY)但它返回null Sinppet代码: scene.getRoot().impl_pickNode(428.0, 278.0); 例: public class Main extends Application { public static void main(String[] args) { Application.launch(args); } @Override public void start(Stage stage) { stage.setTitle(“ComboBoxSample”); Scene scene = new Scene(new Group(), 450, 250); TextField notification = new TextField (); notification.setText(“Label”); notification.clear(); GridPane grid = new […]