【发布时间】:2021-07-06 17:17:38
【问题描述】:
所以我想在 Clicked 方法的 clickRegister 方法中使用添加到 HashMap 的数据。但据我所知,数据并未保存在方法之外。我假设那是因为它超出了范围? (我是编程新手,如果我错了,请纠正我)。我怎样才能做到这一点?甚至有可能吗?
public class Controller {
private HashMap<String, String> userList = new HashMap<String, String>();
public void Clicked(ActionEvent actionEvent) throws IOException {
String cpr = cprField.getText();
String password = passwordField.getText();
if (userList.containsKey(cpr) && userList.containsValue(password)){
Stage stage1;
Parent root1;
stage1 = (Stage) loginButton.getScene().getWindow();
root1 = FXMLLoader.load(getClass().getResource("home.fxml"));
Scene scene = new Scene(root1);
stage1.setScene(scene);
stage1.show();
} else {
System.out.println("Wrong credentials");
}
}
public void clickRegister(ActionEvent actionEvent) throws IOException {
if (cprFieldReg.getText().equals("") && passwordFieldReg.getText().equals("")){
System.out.println("Fill in blank fields");
} else {
String username = cprFieldReg.getText();
String password = passwordFieldReg.getText();
userList.put(username, password);
}
}
}
【问题讨论】:
-
HashMap被定义为一个全局变量,所以你可以在整个instance中使用它。确保使用调试器或控制台打印地图已实际更新。如果是这样,请确保您没有从控制器对象 A 调用
clickRegister()并从另一个控制器对象 B 调用Clicked()。 -
@Babyburger 将其用作整个实例是什么意思? ://