我正在创建我的第一个GUI应用程序。我有一个类称为用户,我有一个类叫做NEWUSER的一个实例,我创建和初始化newGameController.java它(User newUser = new User(username);
,但我想在mainScreenController使用它作为很好,但我得到的错误{{1 }}
我真的不明白MVC是如何工作的,我相信我有一个重大的设计缺陷,有人可以帮助我如何制作它,以便我可以在两个控制器或替代品中使用一个对象吗?以下是我的代码。
User.java
cannot resolve symbol 'newUser'
newGameController.java
package sample.model;
public class User {
private String name;
private double money;
public User(String name) {
this.name = name;
money = 20000;
}
public String getName() {
return name;
}
}
mainscreenController.java
package sample;
import javafx.event.ActionEvent;
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.TextField;
import javafx.scene.text.Text;
import javafx.stage.Stage;
import sample.model.User;
import java.io.IOException;
public class newGameController {
@FXML
private Label mainmessage;
@FXML
private TextField userid;
@FXML
private Button submit;
@FXML
private void handleButtonAction(ActionEvent event) throws IOException {
try {
Stage stage;
Parent root;
String username = userid.getText();
User newUser = new User(username);
stage = (Stage) submit.getScene().getWindow();
root = FXMLLoader.load(getClass().getResource("mainscreen.fxml"));
Scene scene = new Scene(root);
stage.setScene(scene);
stage.show();
}
catch(NullPointerException e)
{
}
}
答案 0 :(得分:0)
在你的mainscreenController类中: -
name.setText(newUser.getName());
在上面的行中你指的是newUser,但是这个类不知道newUser的类型。由于您尚未在此类中声明此变量。
在顶部添加import sample.model.User
语句并定义newUser对象的类型
在控制器和使用过的mainscreenController中初始化的newUser对象的关系看起来并不相关。
即使你在mainscreenController中声明newUser的类型,即User newUser;
,它也会抛出NullPointerException。因为我没有看到它在mainscreenController中初始化。