2016-08-28 34 views
0
Button btn=new Button("Click Me"); 
    Button btn2=new Button("Click"); 
    btn2.setOnAction(e->System.exit(0)); 
    btn.setOnAction(new EventHandler<ActionEvent>(){ 


     public void handle(ActionEvent action){ 
      System.out.println(5); 
     } 
    }); 
    btn2.relocate(0, 0); 
    StackPane root=new StackPane(); 
    root.getChildren().add(btn); 
    root.getChildren().add(btn2); 
    Scene sene=new Scene(root,500,265); 
    primaryStage.setScene(sene); 
    primaryStage.show(); 

我想移動按鈕,使用上面的代碼,但我無法將我的按鈕? 代碼中的問題是什麼,是他們的任何其他方式來做到這一點?移動按鈕或javafx中的其他東西?

+1

不知道你問什麼excatly在這裏。但答案可能是:你忽略了這樣一個事實:'StackPane'是一個佈局,它決定了託管孩子自己的位置,即在這種情況下,在佈局脈衝期間,無論先前分配了什麼'layoutX',孩子都會居中。和'layoutY'(由'relocate'修改)。如果您想自己確定所有孩子的位置,請使用「窗格」。爲了防止選定孩子的位置,爲這些孩子設置'managed'爲'false'。 'StackPane.setAlignment(btn2,Pos.TOP_LEFT)'也可以在這種情況下工作...... – fabian

回答

0

答案是:

http://docs.oracle.com/javafx/2/animations/jfxpub-animations.htm

JavaFX的有動畫準備庫。

一個例子(矩形會褪色):

final Rectangle rect1 = new Rectangle(10, 10, 100, 100); 
rect1.setArcHeight(20); 
rect1.setArcWidth(20); 
rect1.setFill(Color.RED); 

... 

FadeTransition ft = new FadeTransition(Duration.millis(3000), rect1); 
ft.setFromValue(1.0); ft.setToValue(0.1); 
ft.setCycleCount(Timeline.INDEFINITE); 
ft.setAutoReverse(true); 
ft.play(); 

在你的代碼也許需要TranslateTranstition或者只是使用translateXtranslateY方法