Tag: fxml

TextField中的RequestFocus不起作用

我使用JavaFX 2.1并使用FXML创建GUI,在此GUI的控制器中我添加了myTextField.requestFocus(); 。 但我总是把焦点放在另一个控件上。

使用没有FXML的JavaFX控制器

是否有可能在不使用FXML的情况下使用带有JavaFX GUI的控制器。 我注意到FXML文件包含一个fx-controller属性来绑定控制器,但我觉得它不是一个简单的方法来使用它。 有关在不使用FXML文件或JavaFX Scene Builder的情况下使用JavaFX创建MVC的任何想法?

有没有办法模块化JavaFX应用程序?

我开始玩JavaFX 2了,我真的很喜欢用FXML创建UI的简易性。 但是,一旦您通过基本示例并且您需要具有许多窗口的UI,将整个应用程序的UI的定义放在单个FXML文件中似乎是不合逻辑的。 是否可以在单独的FXML文件中编写单独的组件,然后根据需要包含它们? 比如说,当用户点击主菜单中的某个项目时,我想要一个窗口弹出; 我可以在单独的FXML文件中编写该窗口的定义,在运行时加载它并将其添加到节点树吗?

ComboBox FXML默认值

如何使用FXML在ComboBox设置默认值? 我希望默认选择NVT 。 我尝试添加selected=”selected”等但似乎没有找到正确的语法。 是否可以使用Scene Builder编辑列出的项目? 我似乎无法找到它。

如何使用相同的模型对象初始化JavaFX控制器?

脚本 我正在创建一个GUI,其中多个视图引用相同的模型对象。 我习惯了什么 在Swing中,如果我希望所有视图都引用相同的模型,我会将模型传递给构造函数。 我目前正在做什么 在JavaFX中,我通过在每个视图/控制器加载后在视图/控制器(菜单栏,拆分窗格,制表符……)中使用setter方法来传递模型。 我发现这非常俗气和麻烦。 另外,我发现它不起作用,因为在某些情况下我需要在一些控制器小部件初始化之前已经存在于控制器中的模型。 Lackluster Alternatives (注意:我正在引用这些stackoverflow问题: Controller.java文件中的Javafx 2.0操作方法Application.getParameters() 传递参数JavaFX FXML 带控制器的多个FXML,共享对象 加载FXML时将参数传递给控制器 ) dependency injection 我看过这个网站, http: //www.zenjava.com/2011/10/23/javafx-2-0-fxml-and-spring/,我看了一下google Guice,但我不知道看不到简单地给每个JavaFX视图/控制器提供相同模型对象的方法。 看起来注入会为每个视图/控制器注入不同的模型。 将模型对象保存为公共静态变量 这是一个选项,但目前我不喜欢让公共静态模型如此开放和可用的想法。 显然,我可以使它成为一个私有静态变量,并有getter和setter,但我也不喜欢这个想法。 将参数从调用者传递到控制器 我希望每个控制器在其构造函数中加载自身,并且我希望每个自定义控制器自动注入其父控制器。 例如,卡片概述选项卡会像下面这样加载: public CardOverviewTab() { FXMLLoader fxmlLoader = new FXMLLoader(getClass().getResource(“card_overview_tab.fxml”)); fxmlLoader.setRoot(content); fxmlLoader.setController(this); try { fxmlLoader.load(); } catch (Exception e) { e.printStackTrace(); } } 并且SingleGameSetup控制器将卡概述选项卡自动注入变量: public class […]

我想用其他Controller Files中的一些参数加载新的FXML文件

我已经阅读了关于传递参数的下一个答案,但它们并没有帮助我。 通过参数-JavaFX的FXML JavaFX的从- -沟槽单例的控制器 下面是我努力从事件处理程序打开新的FXML视图,该处理程序易于传递参数。 请寻求帮助。 MainController.java @FXML private void handleButtonAction(ActionEvent event) throws IOException { Context currentContext = new Context(); URL url = getClass().getResource(“ManageTemplateChild.fxml”); FXMLLoader fxmlloader = new FXMLLoader(); fxmlloader.setLocation(url); fxmlloader.setBuilderFactory(new JavaFXBuilderFactory()); bordermanagetemp.getChildren().clear(); bordermanagetemp.getChildren().add((Node) fxmlloader.load(url.openStream())); ((ManageTemplateChildController) fxmlloader.getController()) .setContext(currentContext,Finalvaluetablerow); } ManageTemplateChildController.java private Context context; public void setContext(Context context,Object Finalvaluetablerow) { this.context = context; o = Finalvaluetablerow; […]

将person.city.name添加到TableView

我有一个TableView和一些POJO,并希望与其中一个属性绑定到TableView。 但是,此属性也是一个POJO,这应该在TableView中显示一个属性。 这是我的代码: ` 还有我的Persona和Deuda课程: public class Persona { private Integer id; private Integer archivo; private String Nombres; private List recibos; private Deuda deuda; } public class Deuda { private Date fecha; private BigDecimal saldo; private BigDecimal nuevo; private BigDecimal descuento; } 我想在fxml文件中设置Person.deuda.saldo,所以我使用了: 但这不会在我的TableView中呈现任何内容。 我怎样才能解决这个问题?

为什么我在加载fxml时会得到stackoverflow?

我调整了我的控制器构造函数和fxml,以便控制器的fxml的所有设置都在fxml中,除了FXML构造和fxml加载。 这是我的控制器: public class MainOverviewTab extends Tab { @FXML private AnchorPane content; public MainOverviewTab() { FXMLLoader fxmlLoader = new FXMLLoader(getClass().getResource(“main_overview_tab.fxml”)); // fxmlLoader.setRoot(content); // fxmlLoader.setController(this); try { fxmlLoader.load(); } catch (Exception e) { e.printStackTrace(); } } 和我的fxml文件: …. 当调用fxmlLoader.load()并返回到FXMLLoader fxmlLoader = new FXMLLoader(…)然后再次调用fxmlLoader.load()时发生stackoverflow …为什么会发生这种情况以及如何保持我的控制器构造函数相同并加载fxml相同? 或者这不可能吗?

FXML文件中的getHostServices()。showDocument()

是否有任何简单的方法将getHostServices()。showDocument()命令以某种方式放入toHomepage()方法,而不是执行行和代码行,所以代码应该看起来干净简单? package sample; import javafx.application.HostServices; import javafx.event.ActionEvent; import javafx.fxml.FXML; import javafx.scene.control.Button; public class Controller { @FXML private Button facebookButton; @FXML void toHomepage(ActionEvent event) { } } 如果我按下按钮,它应该直接链接到Facebook的URL

在fxml文件之间切换

我在swing组件中使用jfxPanel创建了一个应用程序。 我面临的问题是我无法更改fxml文件。 当单击fxml的按钮时,我想处理该fxml并在那里加载另一个fxml文件。 这就是我到目前为止所做的 public class NonResponsiveButtons extends JFrame { NonResponsiveButtons nrb; BottomPanelIncomingController bpic; JPanel panel; JPanel bPanel; private int applicationWidth_600 = 600; private int applicationHeight_600 = 600; private int upperPanelHeight_535 = 535; private int bottomPanelHeight_65 = (applicationHeight_600-upperPanelHeight_535); public static void main(String[] args) { new NonResponsiveButtons(); } public NonResponsiveButtons(){ final JFXPanel fxPanel = new JFXPanel(); […]