我主要使用FXML文件,我有我的控制器;
@FXML
public Label htmlLabel;
private Main main;
...
@FXML
public void htmlClick() {
System.out.println("I am cowgoat");
//main.showHtmlPane();
}
我希望main.showHtmlPane();
显示另一个窗格。
此窗格位于锚定窗格的下半部分,并且只要单击按钮,它就是该阶段的唯一部分。假设不只有一个标签。标签在FXML中有一个动作,可以点击。
在我的Main中,我想在启动时启动所有三个标签/窗格,这样每次单击每个标签时我都不会创建新实例。换句话说,窗格应该在从一个窗格到下一个窗格时保留输入。
参见main;
@Override
public void start(Stage primaryStage) throws Exception {
Parent root = FXMLLoader.load(getClass().getResource("../view/main.fxml"));
Scene scene = new Scene(root); ...
...
...
primaryStage.setScene(scene);
primaryStage.show();
}
所以我的主窗格在启动时启动。切换到其他人时,必须重新审视我的主要内容。
显然我想在main中使用一些函数,例如showHtmlPane();
,但我不知道该怎么做。我的第一个想法是我无法更改我的fxml文件的各个元素,所以我需要新的元素。
所以我创建了单独的fxml文件,其中所有内容都保持不变,只是更改了下方窗格中的内容,这将保留带有标签栏的窗口的图像。我不想实现javafx标签,因为这不是我想要的。
旁注: 这必须是一个适用于fxml文件的解决方案。如果有办法分割我的fxml文件的上半部分和下半部分也可以。记住,我的UI有圆角,窗格在舞台的上半部分有一些叠加,但这可能很容易解决。