我正在创建一个存储带图形的应用程序的记录。我必须使场景的根节点静态,以便动画类与它交互。所以现在我得到了那部分工作但是通过使该节点静态我现在遇到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();
}