Tag: fxml

如何在Javafx中为XML文件创建常量变量

StackPane layoutY=”70.0″ prefHeight=”479.0″ 。 我想在Java文件(479.0)值(70.0)和(479.0)静态,因此我可以将它们用于其他文件。 这可能吗?

JavaFX同步重复视图到同一个控制器(FXML和MVC)

下面是一个小应用程序,说明了问题: ButtonPanel.fxml ButtonPanelController.java public class ButtonPanelController { @FXML Button myButton; boolean isRed = false; public void buttonClickedAction(ActionEvent event) { if(isRed) { myButton.setStyle(“”); } else { myButton.setStyle(“-fx-background-color: red”); } isRed = !isRed; } } TestApp.java public class TestApp extends Application { ButtonPanelController buttonController; @Override public void start(Stage stage) throws Exception { // 1st Stage stage.setTitle(“1st Stage”); […]

在Eclipse外运行jar时未加载FXML布局

我尝试加载我的fxml布局文件,如下所示: FXMLLoader loader = new FXMLLoader(); loader.setLocation(getClass().getResource(“view/MainLayout.fxml”)); AnchorPane personOverview = (AnchorPane) loader.load(); 当我在Eclipse中运行应用程序时都可以工作,但是当我使用Ant部署应用程序时,我遇到了一个错误: 构建项目后,我的文件夹结构是: 在部署的jar中也一样 我知道在jar和eclipse中解析路径可能存在差异,但我无法解决这个问题。 我使用Java 1.8和JavaFX 8。 更新1根据错误我认为它使用绝对URL解析路径(以文件:/ C:/ …开头),但应该在jar文件中使用相对URL。 为什么它使用绝对路径是主要问题。 更新2 有趣的是根布局成功加载,使用相同的代码.. FXMLLoader loader = new FXMLLoader(); loader.setLocation(MainApp.class.getResource(“view/RootLayout.fxml”)); rootLayout = (BorderPane) loader.load(); 但内部布局初始化失败。 堆栈跟踪: java -jar MeterChecker.jar javafx.fxml.LoadException: unknown path at javafx.fxml.FXMLLoader.constructLoadException(Unknown Source) at javafx.fxml.FXMLLoader.loadImpl(Unknown Source) at javafx.fxml.FXMLLoader.load(Unknown Source) at com.wolf6969.checker.MainApp.showMain(Unknown Source) […]

初始化控制器和FXML链接控制器之间的区别?

直到最近我才知道你可以在FXML文件中设置带有fx:controller ,所以我依靠FXMLLoader’s setController来管理链接。 那么,是否有任何理由使用一个而不是像可overrideable initialize()方法有用的特殊情况?

Javafx:使用FXML的可重用集合

我想将一个集合绑定到FXML中的多个ChoiceBox。 然而,我知道如何使用的唯一方法: 是否可以在控制器中声明集合并在FXML中引用它而不是为每个ChoiceBox复制集合?

如何使用FXML在JavaFX中动态创建选项卡?

如何使用JavaFX / FXML创建新选项卡? 我在FXML中创建了一个tabpane,但我想点击一个按钮,导致出现一个新标签。 这是我的FXML: 这是我在我的控制器中正在尝试的代码: package sample; import javafx.event.ActionEvent; import javafx.fxml.FXML; import javafx.fxml.Initializable; import javafx.scene.control.*; import java.net.URL; import java.util.ResourceBundle; public class Controller implements Initializable { @FXML private Button btnAbout; @FXML private Button btnNew; @FXML private TabPane tabPane; //tab array int intTabs = 0; Tab[] openTabs; @FXML private void btnNew(ActionEvent event){ try{ intTabs++; openTabs = […]

scenebulider无法打开fxml文件

我正在JavaFX中创建一个应用程序。 打开场景构建器时收到此错误:“无法打开Loggin.fxml。打开操作失败。请确保所选文件是有效的fxml文档。” 点击“显示详细信息”,它显示了我的错误: java.io.IOException: javafx.fxml.LoadException: /F:/Anusha/stophubsourcetree3/src/application/GetStarted.fxml at com.oracle.javafx.scenebuilder.kit.fxom.FXOMLoader.load(FXOMLoader.java:92) at com.oracle.javafx.scenebuilder.kit.fxom.FXOMDocument.(FXOMDocument.java:80) at com.oracle.javafx.scenebuilder.kit.fxom.FXOMDocument.(FXOMDocument.java:95) at com.oracle.javafx.scenebuilder.kit.editor.EditorController.updateFxomDocument(EditorController.java:2370) at com.oracle.javafx.scenebuilder.kit.editor.EditorController.setFxmlTextAndLocation(EditorController.java:655) at com.oracle.javafx.scenebuilder.app.DocumentWindowController.loadFromFile(DocumentWindowController.java:386) at com.oracle.javafx.scenebuilder.app.SceneBuilderApp.performOpenFiles(SceneBuilderApp.java:579) at com.oracle.javafx.scenebuilder.app.SceneBuilderApp.handleOpenFilesAction(SceneBuilderApp.java:447) at com.oracle.javafx.scenebuilder.app.SceneBuilderApp.handleLaunch(SceneBuilderApp.java:427) at com.oracle.javafx.scenebuilder.app.AppPlatform.requestStartGeneric(AppPlatform.java:139) at com.oracle.javafx.scenebuilder.app.AppPlatform.requestStart(AppPlatform.java:106) at com.oracle.javafx.scenebuilder.app.SceneBuilderApp.start(SceneBuilderApp.java:371) at com.sun.javafx.application.LauncherImpl$8.run(LauncherImpl.java:837) at com.sun.javafx.application.PlatformImpl$7.run(PlatformImpl.java:335) at com.sun.javafx.application.PlatformImpl$6$1.run(PlatformImpl.java:301) at com.sun.javafx.application.PlatformImpl$6$1.run(PlatformImpl.java:298) at java.security.AccessController.doPrivileged(Native Method) at com.sun.javafx.application.PlatformImpl$6.run(PlatformImpl.java:298) at com.sun.glass.ui.InvokeLaterDispatcher$Future.run(InvokeLaterDispatcher.java:95) at com.sun.glass.ui.win.WinApplication._runLoop(Native Method) at com.sun.glass.ui.win.WinApplication.access$300(WinApplication.java:39) at com.sun.glass.ui.win.WinApplication$4$1.run(WinApplication.java:112) at java.lang.Thread.run(Thread.java:744) Caused […]

JavaFX按钮有透明背景

我在JavaFX中有一些经典的Button ,其中包含一些包含文本的框。 我需要没有那个盒子的按钮,只需要文本,当我hover按钮或用鼠标点击按钮时,它应该将颜色改变为不同的颜色。

混合Swing / FX:无法从fxml控制器处理对话框

场景:顶级容器是一个Swing JDialog,它有一些fx内容,包括触发处理按钮的fx按钮。 在创建按钮并手动配置相应的eventHandler时,处理可以预期(对话框被隐藏)。 通过fxml创建/配置按钮时,不会释放该对话框。 下面的示例包含手动配置和fxml加载/绑定按钮,以查看不同的行为。 问题: 这个例子有什么问题吗? 是否有预期的swing / fx交互有任何差异(手动与fxml)? 如何让它从fxml工作? 代码: package fxml; import java.io.IOException; import javafx.application.Platform; import javafx.embed.swing.JFXPanel; import javafx.event.ActionEvent; import javafx.fxml.FXML; import javafx.fxml.FXMLLoader; import javafx.scene.Scene; import javafx.scene.control.Button; import javafx.scene.layout.FlowPane; import javax.swing.JDialog; import javax.swing.SwingUtilities; public class DisposeExample { @FXML Button closeButton; Button fxButton; private JDialog dialog; /** * The action handler method used […]

如何使用id在JavaFx中获取元素?

我是FXML的新手,我正在尝试使用switch为所有按钮点击创建一个处理程序。 但是,为了做到这一点,我需要使用和id获取元素。 我尝试了以下但由于某种原因(可能是因为我在控制器类中而不是在主节点上)我得到了堆栈溢出exception。 public class ViewController { public Button exitBtn; public ViewController() throws IOException { Parent root = FXMLLoader.load(getClass().getResource(“mainWindow.fxml”)); Scene scene = new Scene(root); exitBtn = (Button) scene.lookup(“#exitBtn”); } } 那么我如何使用它的id作为参考获得一个元素(例如一个按钮)? 该按钮的fxml块是: