Hello I'm new to javaFX, and trying to create a simulation application of the scheduling algorithms.
我做了逻辑包,但是UI仍然有问题。我想做的是允许用户输入作业数量,在下一个窗口中,我想显示文本字段,他可以在其中输入每个作业的执行时间,换句话说,我应该显示文本字段n time,作为用户给定的作业数量。
这是我为第一个界面所做的:
<?xml version="1.0" encoding="UTF-8"?>
<GridPane xmlns:fx="http://javafx.com/fxml/1" alignment="center" hgap="10" styleClass="mainFxmlClass" vgap="10" fx:controller="ui.FXMLController">
<padding><Insets bottom="10" left="25" right="25" top="25" /></padding>
<stylesheets>
<URL value="@fxml.css" />
</stylesheets>
<children>
<Text id="welcome-text" text="Welcome" GridPane.columnIndex="0" GridPane.columnSpan="2" GridPane.rowIndex="0" />
<Label text="Le nombre de Processus:" GridPane.columnIndex="0" GridPane.rowIndex="1" />
<TextField fx:id="textField" GridPane.columnIndex="1" GridPane.rowIndex="1" />
<Label text="Choisissez un Algorithm d'Ordonancement :" GridPane.columnIndex="0" GridPane.rowIndex="2" />
<HBox alignment="bottom_right" spacing="10" GridPane.columnIndex="1" GridPane.rowIndex="5" />
<Text fx:id="actiontarget" GridPane.columnIndex="1" GridPane.rowIndex="7" />
<Button onAction="#handleButtonAction" text="Next" GridPane.columnIndex="1" GridPane.rowIndex="4" />
<MenuButton mnemonicParsing="false" prefHeight="25.0" prefWidth="150.0" text="Algo ... " GridPane.columnIndex="1" GridPane.rowIndex="2">
<items>
<MenuItem mnemonicParsing="true" text="Fifo" onAction="#handleButtonAction" />
<MenuItem mnemonicParsing="false" text="Tourniquet" />
<MenuItem mnemonicParsing="false" text="PCTER" />
<MenuItem mnemonicParsing="false" text="PCTE" />
</items>
</MenuButton>
</children>
</GridPane>
这是我的控制器:
public class FXMLController implements Initializable {
@FXML
private Label label;
@FXML
private Button button;
@FXML
private TextField textField;
@FXML
private Integer i;
@FXML
public void handleButtonAction() throws IOException{
String t = textField.getText();
IntegerStringConverter a = new IntegerStringConverter();
this.i = a.fromString(t);
Parent window = FXMLLoader.load(getClass().getResource("FXML1.fxml"));
Scene secondScene = new Scene(window);
Stage stage = new Stage();
stage.setScene(secondScene);
stage.show();
stage.show();
}
}
我不知道是否有方法将参数从控制器传递到FXML文件,并在FXML中执行循环。。请帮忙
AFAIK,你不能这样做。你必须逆转控制流程:控制器应该在循环中创建必要的控件(标签、文本字段等),可能使用不同的FXML,它只是定义了该部分。
如果我理解正确,您希望请求用户输入并根据输入在GUI中创建节点。
您不能在fxml文件中分别创建循环控制结构,但您可以通过以下方式动态添加和删除节点(即TextFields)
定义垂直框/水平框,
<VBox id="HBox" fx:id="myVBox" ...>
以整数形式获取输入,
int sum = Integer.parseInt(textField.getText());
并在for循环中添加节点,
for(int i=0, i<sum, i++) {
myVBox.getChildren().add(new TextField("executing time"));
}
并更新视图。
希望有帮助。
我无法完成的任务是将参数从一个场景传递到另一个场景并返回。 或者换句话说:主控制器加载子控制器的fxml,将对象传递给子控制器,切换场景。不得有两扇开着的窗户。工作完成后,副控制器将场景切换回主控制器,并将一些对象传递回主控制器。这就是我失败的地方。 这个问题和这个问题很相似但仍然没有答案。传递参数JavaFX FXML在注释中也提到了: 有没有人知道如何在没有外部库的情况下实现这一点?
问题内容: 我有一个登录屏幕,我想将登录ID从LoginController传递到MainController,因此我可以访问一些功能来更改密码和其他功能。 我这样加载控制器: Main.fxml绑定到MainController.java。有没有一种方法可以传递所需的用户ID,并在控制器的initialize()方法上对其进行访问? 问题答案: 用FXMLLoader加载控制器后,可以在调用sh
问题内容: 我有多个调用同一控制器的路由,我想将不同的变量传递给它。 我知道我可以使用“解决”对象: 传递值作为依赖项: 这种方法的问题是,如果其他路线上缺少resolve对象,则我的应用程序崩溃,并且我想传递可选的参数。 有什么方法可以(从路由提供者)将特定的参数传递给Controller? 谢谢 问题答案: 路由: 访问:在控制器中注入$ route,然后使用它
我这样加载控制器: fxml绑定到MainController.java。有没有一种方法可以传递我需要的用户ID,并在控制器的initialize()方法上访问它?
我是JavaFx新手,因此我找不到解决问题的方法 假设我有以下应用程序结构: 在SecondController中显示文本的最佳/最佳方式是什么,从FirstController传递文本。我的意思是,我在中输入一个文本,然后按下按钮,按下按钮后,我希望文本显示在使用另一个控制器的中。我已经阅读了很多关于和可以用来解决这个问题的知识,但不幸的是,我无法实现一个有效的解决方案。 如果你们专家能在这方面
问题内容: 我的图像是我试图将数据(变量)从一个阶段传递到另一阶段,但是当我尝试在第二阶段访问它们时,它们为空。mainWindow的代码。前往window1 // window1类: 如果我想访问以前收到的标题,则为null 初始化显示应该为“ Window1”时显示为null} 问题答案: 在加载FXML文件的过程中,将调用该方法-换句话说,在调用时将调用该方法。 显然,这是 在 调用 之前