当前位置: 首页 > 知识库问答 >
问题:

在两个定位窗格之间切换

上官砚文
2023-03-14

我是JavaFX的新手,我需要在两个没有菜单栏的锚窗格之间切换,但锚窗格本身中有注册按钮,它应该切换到注册表单表单登录表单我正在使用Scene Builder生成.fxml文件,

我的问题是如何以一种简单的方式做到这一点?loginform与注册按钮

ERRRO是

null

main.java

package localmart.view;
import java.io.IOException;

import javafx.application.Application;
import javafx.fxml.FXMLLoader;
import javafx.scene.Scene;
import javafx.scene.layout.AnchorPane;
import javafx.stage.Stage;

public class Main extends Application {
    private Stage primaryStage;
    private AnchorPane mainLayout;

    @Override
    public void start(Stage primaryStage) {
        this.primaryStage = primaryStage;
        this.primaryStage.setTitle("Local Mart");
        showMainView();

    }

    private void showMainView() {
        FXMLLoader loader = new FXMLLoader();
        loader.setLocation(Main.class.getResource("view/login.fxml")); // login
                                                                        // form
        try {
            mainLayout = loader.load();
            Scene scene = new Scene(mainLayout);
            primaryStage.setScene(scene);
            primaryStage.show();
        } catch (IOException e) {
            e.printStackTrace();
        }
    }

    public static void main(String[] args) {
        launch(args);
    }
}

controller.java

package localmart.view;

    import java.io.IOException;

import javafx.fxml.FXML;
import javafx.fxml.FXMLLoader;
import javafx.scene.control.TextField;
import javafx.scene.layout.AnchorPane;
import javafx.scene.layout.Pane;

public class AuthController {
    @FXML AnchorPane anchorPane;

@FXML
private void RegisterStage() throws IOException {
    FXMLLoader fxmlLoader = new FXMLLoader(getClass().getResource("reg.fxml"));
    Pane registerPane = (Pane) fxmlLoader.load();
    try {
        anchorPane.getChildren().clear();
        anchorPane.getChildren().add(registerPane);
    } catch (Exception e) {
        e.printStackTrace();
    }
}   
}

我的问题是如何在main.java中加载register form,在单击signup按钮时,我需要切换registerform

我将controller、onaction、fx:id设置为login.fxml

共有1个答案

斜和硕
2023-03-14

您应该在login.fxml中有一个AnchorPane,它将是所有其他元素的父元素和容器,并且我将AnchorPane设置为该AnchorPaneID(您可以选择您的)。这样做之后,只需要在controller类中添加这些代码部分

@FXML AnchorPane anchorPane;

@FXML
private void RegisterStage() throws IOException {
    FXMLLoader fxmlLoader = new FXMLLoader(getClass().getResource("reg.fxml"));
    Pane registerPane = (Pane) fxmlLoader.load();
    try {
        anchorPane.getChildren().clear();
        anchorPane.getChildren().add(registerPane);
    } catch (Exception e) {
        e.printStackTrace();
    }
}   

reg.fxml替换为要加载的fxml

 类似资料:
  • 假设你有两个活动-A和B,你从A开始B。在B中,你有一个任务。如果任务完成,您希望返回到按下when back键,如果没有,您希望取消整个应用程序。但在解除后,你可以从最近的应用程序菜单中恢复B。如果在那之后你需要同样的后退键的行为。 因此,我想放弃一个活动或整个应用程序(但简历的可能性)。有什么办法可以做到这一点吗?

  • 问题内容: 正如教程向我展示的那样,我已经在最初的几个脚本上构建了一个不错的GUI,但是没有一个脚本解决更复杂的程序的问题。 如果在打开屏幕上有带有“开始菜单”的内容,并且在用户选择后移动到程序的其他部分并适当地重画屏幕,那么执行此操作的优雅方法是什么? 是否只是一个“开始菜单”框架,然后创建一个新的窗口小部件,并填充另一部分的小部件?并在他们按下“后退”按钮时逆转此过程? 问题答案: 一种方法是

  • 问题内容: 我想在Python中的两个值之间切换,即0到1之间。 例如,当我第一次运行一个函数时,它产生数字0。下一次,它产生1。第三次它返回零,依此类推。 抱歉,如果这样做没有道理,但是有人知道这样做的方法吗? 问题答案: 用途: 请注意,如果您需要比更为复杂的周期,那么此解决方案将比此处发布的其他解决方案更具吸引力。

  • 问题内容: 我正在寻找一种方法,当单击某些内容时,可以运行两个单独的操作/函数/“代码块”,然后在再次单击同一内容时,运行一个完全不同的块。我把这个放在一起。我想知道是否有更有效/更优雅的方法。我知道jQuery.toggle(),但是有点烂。 问题答案: jQuery有两个称为的方法。在另一个 [文件] 不正是你想要的click事件。 注意: 似乎至少从 jQuery 1.7开始 ,此版本已 弃

  • 我有一个网站,它包括index.html和style.css和images文件夹。并且,我想在我的网站的主页面上创建一个按钮“切换到另一个主题”(所以index.html),它将在两个CSS之间切换。你能告诉我吗: > 是否需要有两个css,如-style1.css和style2.css? 我是否需要有2个索引页 a)link href=“css/style1.css”rel=“styleshee

  • 首先,我是新的反应和钩子。 我想做的是,当一个状态发生变化时,一个div或一些文本也会发生变化。 例如: 所以在这种情况下,我有我的切换按钮,它将在真或假状态之间切换。我通常使用它从div中添加/删除类,例如: 或者类似的东西。但是,我希望实现的是在上面的代码中显示两个前divs之间进行切换,或者在启动切换时在第一个divs中添加字。 我不太确定如何实现这一点,以及是否应该使用函数来实现这一点。