无法在两个不同的场景中使用Node。

时间:2016-11-14 22:13:05

标签: java javafx javafx-2

我正在创建一个存储带图形的应用程序的记录。我必须使场景的根节点静态,以便动画类与它交互。所以现在我得到了那部分工作但是通过使该节点静态我现在遇到IllegalArgumentException以在两个不同的场景中使用相同的节点。这仅在第二次创建场景时发生。

我见过这个:how to repeat a node in same scene in javafx

我只是在寻找有关代码的帮助。或者关于放置根节点的位置的一些想法,或者可能是一个方法可以让我获得一个包含所有必要元素的新vbox; 谢谢你!

class AddButtonRecordHandler implements EventHandler<ActionEvent>{

private static VBox vbox = new VBox();

 public void handle(ActionEvent e){
    vbox.setAlignment(Pos.CENTER);
    vbox.getChildren().addAll(hb,new AllSphere(30));  
    Stage addRecordDialog = new Stage(); 
    Scene scene = new Scene(vbox, fieldSize(), 200);
    addRecordDialog.setScene(scene);
    addRecordDialog.show();

  public static void newAllSphere(){
    vbox.getChildren().remove(1);
    vbox.getChildren().add(new AllSphere(30)); 

 }
}


final class AllSphere extends Sphere{

   Material material;
   SequentialTransition st = new SequentialTransition();
   private TranslateTransition moveAway = new TranslateTransition(Duration.millis(300),this);

    public AllSphere(double radius){ 

    moveAway.setOnFinished(new EventHandler<ActionEvent>() {
          public void handle(ActionEvent e){
             AddButtonRecordHandler.newAllSphere();
          }
      });
  }

    public void moveAway(){

        st.jumpTo(Duration.ZERO);
        moveAway.setByX(800);
        moveAway.setCycleCount(1);
        moveAway.play();

    }

0 个答案:

没有答案