javafx textfield value在其他视图中标记
问题描述:
我从学校得到了一个派生的地方,我必须在一个视图中以两个名字阅读,然后我们必须按一个按钮转到另一个视图,然后这两个名称必须进入那里有一个标签。我一直试图做一段时间,但出于某种原因,我无法弄清楚。javafx textfield value在其他视图中标记
这是我的第一个观点
public class Startview extends GridPane {
private TextField txtplayer1;
private TextField txtplayer2;
private Button play;
this.txtplayer1 = new TextField();
this.txtplayer2 = new TextField();
this.add(txtplayer1,2,1);
this.add(txtplayer2, 2, 2);
this.add(play, 2, 3);
public Button getplay() {
return play;
}
代码这是我演讲的代码,我写行动
private void eventHandlers() {
view.getplay().setOnAction(new EventHandler<ActionEvent>() {
@Override
public void handle(ActionEvent event) {
Gameview gameview = new Gameview();
Gamepresenter presenter3 = new Gamepresenter(model, gameview);
view.getScene().setRoot(gameview);
gameview.getScene().getWindow().sizeToScene();
gameview.getScene().getWindow().centerOnScreen();
}
});
,并在标签上(该gameview这也是在gridpane)
private Label name1;
private Label name2;
public Label getname1() {
return Name1;
}
public Label getName2() {
return Name2;
}
所有帮助或提示的赞赏
答
就像@James_D所说的,只需在你的模型中使用函数即可。在你的startview中,使用你的玩家类中的setName,并在游戏视图中使用玩家类中的getName。
既然你似乎在使用MVP设计,你有模型吗?你可以把玩家的名字放在模型中...... –
除了@James_D说了什么之外,这个作业似乎是针对绑定属性的。这里有很多教程,这将向你解释这一点。官方的可以在这里找到(https://docs.oracle.com/javase/8/javafx/properties-binding-tutorial/binding.htm) – JohnRW
哦是的,你必须使用你的setplayer和getplayer模型。由于某种原因,唯一没有工作的是从txtplayer1获取值。它不接受吸气剂。 :/ – TheMightyRoy