我有两个控制器的登录和主,当logincontroller验证用户然后maincontroller持有控制,我试过这个方法,但没有工作,userName变量给出了空值。从另一个控制器获取字符串变量值javafx
的LoginController类:
public class loginController implements Initializable{
private String user;
public String getUser() {
return user;
}
if((user.equals(loginUsername.getText()) && (pwd.equals(loginPassword.getText())))){
switch(role){
case "Admin": Stage adminStage=new Stage();
FXMLLoader adminLoader = new FXMLLoader(getClass().getResource("/FXML/Admin/Admin.fxml"));
Parent adminRoot = adminLoader.load();
AdminController adminController = (AdminController)adminLoader.getController();
adminController.setLoginController(this);
}
maincontroller类:当你的控制器得到由FXMLLoader
初始化
public class AdminController implements Initializable {
@FXML
private Label userName;
public void setLoginController(LoginController loginController) {
this.loginController = loginController;
}
public void initialize(URL url, ResourceBundle rb) {
loginController =new LoginController();
try {
db = new DBConnector();
// String user = loginController.getUser();
System.out.println(user);
String query = "SELECT u_full_name,img FROM Users WHERE u_username='"+user+"'";
db.setResultSet(query);
while(db.getResultset().next()){
userName.setText(db.getResultset().getString(1));
imageUpload.setImage(new Image("file:"+db.getResultset().getString(2)));
}
} catch (SQLException e) {
JOptionPane.showMessageDialog(null, "can't retreive photo",e.toString(),0);
}
}
你是否在你的代码中使用'setLoginController'? – nafas
你在哪里设置'user'字段? –
是的,看看登录控制器类我已经设置 –