我目前正在为我的学习做一个Java(+使用MySQL)应用程序:一个Hopital的数据库
我使用JavaFX编写接口代码。我有一个主FXML(用于一般视图),其中有选项卡,在每个选项卡中,我使用(fx:include)导入另一个FXML。以便我的应用程序的每个模块都有自己的控制器和自己设计的视图。
如何将变量从主控制器传递给其他控制器?
谢谢!编辑:让我给你看我的代码
首先,这是我加载我的fxml的类(我首先在Connexion的窗口上,如果Connexion所需的信息是正确的,我就加载带有主接口的fxml Main),并且我将从我的fxml Connexion获得的Connexion(我需要发送的变量)设置为fxml Main
public class MainApp extends Application {
private Stage primaryStage;
private Connection conn;
MainController controllermain = new MainController();
//ConnexionController controllerconnex;
@Override
public void start(Stage primaryStage) throws Exception {
this.primaryStage = primaryStage;
this.primaryStage.setTitle("BASE DE L'HOPITAL DU ZOB");
showConnexion();
}
public void showConnexion() {
try {
FXMLLoader loader = new FXMLLoader();
loader.setLocation(MainApp.class.getResource("Connexion.fxml"));
Parent page = (AnchorPane) loader.load();
Scene scene = new Scene(page);
primaryStage.setScene(scene);
primaryStage.show();
ConnexionController controller = loader.getController();
controller.setMainApp(this);
} catch (IOException e) {
e.printStackTrace();
}
}
public void showMainApp(Connection conn) {
try {
FXMLLoader loader = new FXMLLoader();
loader.setLocation(MainApp.class.getResource("Main.fxml"));
AnchorPane page = (AnchorPane) loader.load();
Scene scene = new Scene(page);
primaryStage.setScene(scene);
primaryStage.show();
this.conn = conn;
controllermain = loader.getController();
controllermain.setMainApp(this);
controllermain.setConnexion(conn); // I want to send the variable conn to the others
} catch (IOException e) {
e.printStackTrace();
}
}
/**
* @param args the command line arguments
*/
public static void main(String[] args) {
launch(args);
}
这是我的主控制器,你可以看到,我得到的变量connexion只与set方法,然后我可以把它发送到另一个控制器
public class MainController implements Initializable {
private MainApp mainApp;
private Button retour;
protected Connection conn;
FXML AchorPane ;
public MainController() {
}
@Override
public void initialize(URL url, ResourceBundle rb) {
}
public void setMainApp(MainApp mainApp) {
this.mainApp = mainApp;
}
public void setConnexion(Connection conn){
this.conn=conn;
}
public void handleRetour(){
mainApp.showConnexion();
}
}
}
您只需要在对应于“主”fxml的控制器中引用对应于包含的fxml的控制器。您可以使用嵌套控制器机制来完成此操作。
简而言之,如果您有一个带有
标记的“main”fxml,请将fx:id
添加到
:
main.fxml:
<!-- imports etc -->
<!-- root element, e.g. BorderPane -->
<BorderPane fx:controller="com.example.MainController" xmlns="..." ... >
<!-- ... -->
<fx:include source="tab.fxml" fx:id="tab" />
<!-- ... -->
</BorderPane>
public class MainController {
@FXML
private TabController tabController ;
private Connection conn ;
// other injected fields, etc...
public void setConnexion(Connection conn) {
this.conn = conn ;
// pass Connection to TabController:
tabController.setConnexion(conn);
}
}
现在,只需在TabController
中定义一个setConnexion(...)
方法(如果还没有),以接收Connection
对象(并更新它需要更新的任何结果)。
我有一组Swagger文件,它以通常的方式定义参数。例如: 在将这些文件导入到Postman中时,Postman集合就被正确地创建了,但是我希望“authorization”参数的Postman变量为“auth_token”而不是“authorization”(例如)。 实际上,我希望声明一个字段(理想情况下是在swagger文件中?)即“当导出到Postman时,使用值AUTH_TOKEN作为变
转换为json格式。
我有一个 netcdf 数据文件,其中包含以下变量,显示在下面的 ncdump 代码段中: 我正在尝试从此文件中消除时间坐标变量,以便获得三维 netcdf 数据文件。基本上在netcdf文件中第一次拥有数据数据值,仅此而已。我试图用 ncks 完成此操作,这就是他们在进行谷歌搜索时显示我应该做的事情。我用 ncks 尝试了以下命令: 但我无法删除时间维度。我应该怎么做才能调整此命令以获得仅显示初
问题内容: 我想将python变量名称转换为等效的字符串,如图所示。有什么想法吗? 问题答案: TL; DR:不可能。参见最后的“结论”。 在一个使用场景中,您可能需要此场景。我并不是在暗示没有更好的方法或实现相同的功能。 为了在调试,模式和其他类似情况下出现错误时“转储”任意词典列表,这将很有用。 需要的是该功能的反向功能: 它将以标识符名称(“变量”,“字典”等)作为参数,并返回包含标识符名称
我有一个问题,我已经在stackoverflow上问了几次,我已经尝试了所有这些问题,没有一个有效。所以我很想在另一个时间总结这个问题,并试着更准确地描述它。 我正在构建一个应用程序,将图片发送到python后端,以获得xcode swift中的图像识别结果。 我正在使用Alamofire上传,这里是上传部分: 下面是我从服务器端得到的json响应: 所以,我想要达到的目的,就是打印第一个预言的名
问题内容: 我有一个函数,其输入参数可以是一个元素或元素列表。如果此参数是单个元素,则将其放在列表中,以便可以以一致的方式遍历输入。 目前我有这个: 我正在使用现有的API,因此无法更改输入参数。使用isinstance()感觉很麻烦,所以有 适当的 方法吗? 问题答案: 我喜欢Andrei Vajna的建议。请注意以下一些典型的Python类型的结果: 这具有将字符串视为不可重复的额外优势-字符