如何从JavaFX的主要阶段调用第二阶段

时间:2018-03-29 19:47:46

标签: java javafx

我是JavaFX的初学者,我很震惊。我做了以下 -

我有一个主要的舞台,有按钮

btnShow.setOnAction(e->{

        String finalList="";
        for (int sub=0;sub<finalArrayList.size();sub++){
            Worker worker=finalArrayList.get(sub);
            finalList+=worker.getName()+"\t";
            finalList+=worker.getCity()+"\n";
        }
        StageTwo(finalList); 

    });

以下是我想从主舞台上打电话的另一个阶段

public class StageTwo extends Stage {

    private TextArea txtDisp=new TextArea();
    private StackPane stack=new StackPane(txtDisp); 
    private Scene scene= new Scene(stack,700,300);

    public StageTwo(String finalList){

        txtDisp.setText(finalList);
        setTitle("Display Workers"); 
        setScene(scene); 
}

1 个答案:

答案 0 :(得分:1)

要从另一个阶段开始一个新阶段,只需实例化阶段对象,然后调用show()方法。

所以这段代码:

  btnShow.setOnAction(e->{

    String finalList="";
    for (int sub=0;sub<finalArrayList.size();sub++){
        Worker worker=finalArrayList.get(sub);
        finalList+=worker.getName()+"\t";
        finalList+=worker.getCity()+"\n";
    }
    StageTwo(finalList); 

});

应更改为此代码:

  btnShow.setOnAction(e->{

    String finalList="";
    for (int sub=0;sub<finalArrayList.size();sub++){
        Worker worker=finalArrayList.get(sub);
        finalList+=worker.getName()+"\t";
        finalList+=worker.getCity()+"\n";
    }
   //create a new instance and call the show method
   new StageTwo(finalList).show(); 

});

现在,当点击按钮时,将显示StageTwo。

如果您想了解更多内容以了解各个阶段的工作情况,我会推荐这篇文章https://docs.oracle.com/javase/8/javafx/api/javafx/stage/Stage.html

相关问题