Tag: javafx

如何扩展使用FXML的自定义JavaFX组件

如果为视图使用FXML,如何正确扩展自定义JavaFX组件以添加或修改其GUI组件? 作为示例场景,假设我使用以下方法创建自定义JavaFX组件: SpecializedButton.java(控制器) package test; import java.io.IOException; import javafx.fxml.FXML; import javafx.fxml.FXMLLoader; import javafx.scene.control.Button; import javafx.scene.control.Label; import javafx.scene.layout.HBox; public class SpecializedButton extends HBox { @FXML private Button button; @FXML private Label label; public SpecializedButton() { FXMLLoader loader = new FXMLLoader( getClass().getResource( “SpecializedButton.fxml” ) ); loader.setRoot( this ); loader.setController( this ); try { loader.load(); } catch ( […]

如何更改JavaFX中的突出显示颜色?

如何更改JavaFX中的突出显示颜色? 通常它是渐变的蓝色,但我希望有一个绿色突出显示。 我尝试过以下方法: .root{ -fx-shadow-highlight-color: #CCFF99; } 感谢帮助!

在javaFX中切换场景

我在选择menuItem时尝试关闭当前场景并打开另一个场景时遇到问题。 我的主要阶段编码如下: public void start(Stage primaryStage) throws Exception { primaryStage.setTitle(“Shop Management”); Pane myPane = (Pane)FXMLLoader.load(getClass().getResource (“createProduct.fxml”)); Scene myScene = new Scene(myPane); primaryStage.setScene(myScene); primaryStage.show(); } 然后在createProduct.fxml中,当menuItem是onclick时,它将执行以下操作: public void gotoCreateCategory(ActionEvent event) throws IOException { Stage stage = new Stage(); stage.setTitle(“Shop Management”); Pane myPane = null; myPane = FXMLLoader.load(getClass().getResource(“createCategory.fxml”)); Scene scene = new Scene(myPane); stage.setScene(scene); stage.show(); } 它确实打开了createCategory.fxml。 […]

完全加载WebView后执行任务

WebEngine完成加载后是否可以自动运行任务? 我知道我可以从WebEngine获取一个Worker来指示加载进度,但似乎反复轮询Worker并不是一个优雅的解决方案(即锁定程序直到页面加载)。 我知道我可以使用Task执行此操作,因此我可以以某种方式获取WebEngine的Task ,并在完成命令上添加执行操作吗?

如何在JavaFX 8中向TableView标题单元格添加工具提示

有谁知道如何将工具提示添加到TableView中的列标题? 有很多地方解释了如何将工具提示添加到数据单元格,但我没有找到将工具提示添加到标题的方法。 使用ScenicView工具,我可以看到标题是TableColumnHeader对象中的标签,但似乎它不是公共对象。 有什么建议么 ?

JavaFX 8如何在几乎空的Application类中启动JavaFX Application线程?

可以说,我们有以下课程: import javafx.application.Application; import javafx.stage.Stage; public class Test extends Application { public Test() { System.out.println(“Constructor”); } @Override public void start(Stage primaryStage) throws Exception { System.out.println(“start”); } public static void main(String… args) { System.out.println(“main”); } } 它源自Application但它不使用任何方法。 通常通过在main中调用launch(args)来启动JavaFX应用程序。 当我启动这个程序时,唯一的输出是“main”,因此不会调用构造函数和start,但程序不会因为运行JavaFX Application线程而终止。 但它来自哪里? 我做了一些调试,发现在main方法运行之前,线程是从主线程启动的。 堆栈跟踪以NativeMethodAccessorImpl开头。 为了更加奇怪:当我从另一个类启动main方法时,JavaFX Application线程没有启动: public class Test2 { public static void main(String[] args) { Test.main(args); […]

JavaFX样式类不会刷新

我正在为一个节点添加一个样式类,如果它被选中,如果我选择其他项目则将其删除。 即使我删除样式类,样式也不会刷新,所以它不会回到正常状态: admin_category_label.getStyleClass().remove(admin_category_label.getStyleClass().indexOf(“selected”)); admin_category_label.getStyleClass().add(“clear”); 但风格将与所选的课程保持一致

JavaFX FileChooser选择文件和/或目录?

JavaFX允许通过FileChooser选择文件并通过DirectoryChooser选择目录,但是如何允许它同时选择两者? 类似于Swing的JFileChooser.FILES_AND_DIRECTORIES选项。 目前我只是直接使用JFileChooser,但它并不是一个很好的视觉匹配: JFileChooser chooser = new JFileChooser(“.”); chooser.setMultiSelectionEnabled(true); chooser.setFileSelectionMode(JFileChooser.FILES_AND_DIRECTORIES); int ret = chooser.showOpenDialog(null); if(ret == JFileChooser.APPROVE_OPTION) { File[] files = chooser.getSelectedFiles(); … }

即使由于位于另一个选项卡中而不可见,我如何使JavaFX的webview渲染?

我正在JavaFX WebView上加载一个网站,过了一段时间用以下内容截取屏幕截图: WritableImage image = webView.snapshot(null, null); 如果我正在查看工作正常的WebView,但如果它被隐藏在不在前台的选项卡中(我不确定隐藏它的其他情况),那么,截图是适当的网站,但完全空白。 即使不可见,如何强制WebView呈现? 在此期间, webView.isVisible()为true。 我发现WebView有一个名为isTreeReallyVisible() ,目前它包含: private boolean isTreeReallyVisible() { if (getScene() == null) { return false; } final Window window = getScene().getWindow(); if (window == null) { return false; } boolean iconified = (window instanceof Stage) ? ((Stage)window).isIconified() : false; return impl_isTreeVisible() && window.isShowing() && window.getWidth() > […]

IntelliJ IDEA – getClass()。getResource(“…”)返回null

我正在使用IntelliJ IDEA 13.1.5,我曾经使用Eclipse。 我正在研究JavaFX应用程序,我尝试使用getClass()。getResource()在我的MainApp类中加载FXML文件。 我阅读了文档并尝试了几个想法,最后我得到了null 。 这是层次结构: dz.bilaldjago.homekode.MainApp.java dz.bilaldjago.homekode.view.RootLayout.FXML 这是我使用的代码片段: FXMLLoader loader = new FXMLLoader(); loader.setLocation(getClass().getResource(“view/RootLayout.fxml”)); 我尝试了其他解决方案,例如从root用户提供url并使用classLoader 结果是一样的。 请问任何想法