我有一个登录页面,我正在尝试获得一个用户的电子邮件,他们输入显示在下一个页面,这是他们的主页。这是代码:
FXMLLoader loaderNew = new FXMLLoader(getClass().getResource("/sample/view/Dashboard.fxml"));
try {
loaderNew.load();
} catch (IOException e) {
e.printStackTrace();
}
DashboardController dashboardController = loaderNew.getController();
dashboardController.setName(loginEmail.getText().trim());
这是我试图调用的方法:
public void setName(String name){
nameLbl.setText(name);
}
我没有错误,只是没有更新nameLbl,我不知道为什么。logincontroller将成功地进入仪表板,它只是不会更新namelBL。
这两个都是完整的代码。
登录控制器:
package sample.controller;
import java.io.IOException;
import java.net.URL;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ResourceBundle;
import javafx.fxml.FXML;
import javafx.fxml.FXMLLoader;
import javafx.scene.Parent;
import javafx.scene.Scene;
import javafx.scene.control.Button;
import javafx.scene.control.Label;
import javafx.scene.control.PasswordField;
import javafx.scene.control.TextField;
import javafx.stage.Stage;
import sample.database.DBConnection;
import sample.model.User;
public class LoginController {
@FXML
private ResourceBundle resources;
@FXML
private URL location;
@FXML
private Button loginButton;
@FXML
private TextField loginEmail;
@FXML
private Button createAccountSwitchButton;
@FXML
private Label errorLabel;
@FXML
private PasswordField loginPassword;
private DBConnection dbConnection;
@FXML
void initialize() {
dbConnection = new DBConnection();
loginButton.setOnAction(event-> {
String loginEmailText = loginEmail.getText().trim();
String loginPasswordText = loginPassword.getText().trim();
User user = new User();
user.setEmail(loginEmailText);
user.setPassword(loginPasswordText);
ResultSet userRow = dbConnection.checkForUser(user);
int counter = 0;
try{
while (userRow.next()){
counter++;
}
if (counter==1){
//-------------------Below this line to the next line seems to do nothing-------------------------------------------------------------------
FXMLLoader loaderNew = new FXMLLoader(getClass().getResource("/sample/view/Dashboard.fxml"));
try {
loaderNew.load();
} catch (IOException e) {
e.printStackTrace();
}
DashboardController dashboardController = loaderNew.getController();
dashboardController.setName(loginEmail.getText().trim());
//---------------------------------------------------------------------------------------
loginButton.getScene().getWindow().hide();
FXMLLoader loader = new FXMLLoader();
loader.setLocation(getClass().getResource("/sample/view/Dashboard.fxml"));
try {
loader.load();
} catch (IOException e) {
e.printStackTrace();
}
Parent root = loader.getRoot();
Stage stage = new Stage();
stage.setScene(new Scene(root));
stage.showAndWait();
}else{
errorLabel.setText("Email or Password Incorrect");
}
}catch(SQLException e){
e.printStackTrace();
}
});
}
}
仪表板控制器:
package sample.controller;
//imports here same as above
public class DashboardController {
@FXML
private Label nameLbl;
public void setName(String name){
nameLbl.setText(name);
}
@FXML
void initialize() {
}
}
似乎我的方法在仪表板控制器从来没有被调用,为什么?事先谢谢你的帮助。
我更新了小段,使它只加载一个FXML加载器,现在可以工作了。
loginButton.getScene().getWindow().hide();
FXMLLoader loader = new FXMLLoader(getClass().getResource("/sample/view/Dashboard.fxml"));
try {
loader.load();
} catch (IOException e) {
e.printStackTrace();
}
Parent root = loader.getRoot();
DashboardController dashboardController = loader.getController();
dashboardController.setName(loginEmail.getText().trim());
Stage stage = new Stage();
stage.setScene(new Scene(root));
stage.show();
场景信息 点击场景信息按钮,打开场景信息编辑栏。填写您想设置的信息。 点击设置封面按钮,将当前界面设置为场景封面 点击设置初始视角按钮,将当前视角设置为场景初始视角,进入场景后,将自动飞行到该视角。 点击变更,可以控制场景的LOGO,该功能需要套餐权益支持。 点击场景模式,即可选择场景私有和公开两种模式。 点击场景标签输入框,即可自定义场景标签。
场景信息 点击“场景信息”按钮,弹出场景基本信息面板。
对我如何做到这一点有什么建议吗? 这是我到目前为止编写的代码,但它似乎忽略了Thread.Sleep并且只使第三个代码变为蓝色。
接口说明 查询场景JSON信息 如需调用,请访问 开发者文档 来查看详细的接口使用说明 该接口仅开放给已获取SDK的开发者 API地址 GET /wish3dearth/api/scene/v1.0.0/getSceneJsonInfo 是否需要登录 是 请求字段说明 参数 类型 请求类型 是否必须 说明 token string header 否 当前登录用户的TOKEN sceneId str
接口说明 查询场景JSON信息 如需调用,请访问 开发者文档 来查看详细的接口使用说明 该接口仅开放给已获取SDK的开发者 如开启https功能,请求地址的协议应改为https,如:https://www.example.com/wish3dearth/api/access/v1.0.0/getLicenseInfo API地址 GET /wish3dearth/api/scene/v1.0.0/