2016-03-03 45 views
0

我从学校得到了一个派生的地方,我必须在一个视图中以两个名字阅读,然后我们必须按一个按钮转到另一个视图,然后这两个名称必须进入那里有一个标签。我一直试图做一段时间,但出于某种原因,我无法弄清楚。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; 

} 

所有帮助或提示的赞赏

+0

既然你似乎在使用MVP设计,你有模型吗?你可以把玩家的名字放在模型中...... –

+0

除了@James_D说了什么之外,这个作业似乎是针对绑定属性的。这里有很多教程,这将向你解释这一点。官方的可以在这里找到(https://docs.oracle.com/javase/8/javafx/properties-binding-tutorial/binding.htm) – JohnRW

+0

哦是的,你必须使用你的setplayer和getplayer模型。由于某种原因,唯一没有工作的是从txtplayer1获取值。它不接受吸气剂。 :/ – TheMightyRoy

回答

0

就像@James_D所说的,只需在你的模型中使用函数即可。在你的startview中,使用你的玩家类中的setName,并在游戏视图中使用玩家类中的getName。