【发布时间】:2018-12-08 06:29:48
【问题描述】:
学习 JavaFX,我有两个文本字段,用户可以在其中输入两个玩家姓名,我想存储它们以供程序(它是一个游戏)使用,并在其他类中使用名称,包括 maingame 类。如果我在welcomecontroller 中打印,它会在您单击提交时打印输入的值,但是,在任何其他类中,如果我执行p1.getName();它返回“null”
我已经创建了一个带有 setter 和 getter 的播放器类来设置对象的名称,我包含以下代码!任何帮助将不胜感激!
欢迎控制器
@FXML
private Button btn_start;
@FXML
public void pressButton(ActionEvent event){
//Create and Set Player1 Name
player p1 = new player();
p1.setName(field_player1.getText());
//Create and Set Player2 Name
player p2 = new player();
p2.setName(field_player2.getText());
try {
FXMLLoader fxmlLoader = new FXMLLoader(getClass().getResource("main.fxml"));
Parent root = (Parent) fxmlLoader.load();
Stage stage = new Stage();
stage.setScene(new Scene(root));
stage.show();
} catch(Exception e) {
e.printStackTrace();
}
}
player.java
public class player {
public String Name;
public void Player(String Name) {
this.Name = Name;
}
public String Name() {
return Name;
}
public void setName(String Name) {
this.Name = Name;
}
public String getName() {
return this.Name;
}
}
所以在除了欢迎控制器之外的任何其他类中,每当我执行 p1.getName();它返回 null
如果我在欢迎控制器中执行 p1.getName();它将返回在 textfield1 中输入的任何内容。
提前致谢!
【问题讨论】:
-
如果任何其他类需要使用对象 p1 (
p1.getName();) 中的信息,则需要获取对p1的引用。贴出的代码不是minimal reproducible example,也没有重现你问的问题。 -
因此,例如,如果我在这两个旁边创建另一个类,让我们说“example.java”,然后执行“System.out.println(p1.getName());”,据我所知它应该获取我们在欢迎控制器类中设置“P1”的名称的任何值,但是,它返回的不是这个值。