第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

JavaFX:StackPane 順序轉(zhuǎn)換

JavaFX:StackPane 順序轉(zhuǎn)換

守著星空守著你 2023-06-04 16:54:30
AnchorPane我正在嘗試在 3 個不同的(點擊 a Button)之間切換FadeTransition,下面是我的代碼,public class TestSlide extends Application {    private ObjectBinding<Node> frontNode;    @Override    public void start(Stage primaryStage) {        StackPane root = new StackPane();        AnchorPane pane1 = new AnchorPane(new Button("1"));        AnchorPane pane2 = new AnchorPane(new Button("2"));        AnchorPane pane3 = new AnchorPane(new Button("3"));        root.getChildren().addAll(pane1, pane2, pane3);        handleAnimation(root);        BorderPane border= new BorderPane(root);        HBox bottom = new HBox(10);        Button front1 = new Button("Pane 1");        Button front2 = new Button("Pane 2");        Button front3 = new Button("Pane 3");        front1.setOnAction((ActionEvent event) -> {            pane1.toFront();        });        front2.setOnAction((ActionEvent event) -> {            pane2.toFront();        });        front3.setOnAction((ActionEvent event) -> {            pane3.toFront();        });        bottom.getChildren().addAll(front1, front2, front3);        border.setBottom(bottom);        Scene scene = new Scene(border,400,400);        primaryStage.setScene(scene);        primaryStage.show();    }該handleAnimation方法引用自另一個 SO 帖子。問題是 ,啟動應(yīng)用程序后,單擊Pane 1 Button。-> Transition 會先顯示pane2然后再顯示pane1?,F(xiàn)在點擊Pane 3 Button -> Transition 將首先顯示pane2然后pane3.現(xiàn)在點擊Pane 2 Button -> Transition 會出現(xiàn)pane2,以上兩點提到的問題就不會再出現(xiàn)了。pane2為什么在第 1 點和第 2 點顯示實際窗格之前顯示過渡?是由于不透明度設(shè)置嗎?為什么在第 3 點之后問題得到解決?我怎樣才能在不顯示第三個窗格的情況下使過渡工作FadeIn和FadeOut各自的工作?Pane
查看完整描述

1 回答

?
繁花如伊

TA貢獻2012條經(jīng)驗 獲得超12個贊

這里的問題是 的子級的初始狀態(tài)StackPane是錯誤的:所有節(jié)點都具有不透明度 1。當(dāng)沒有動畫運行時,您想要的狀態(tài)具有所有節(jié)點,但最后一個完全透明(不透明度 = 0),最后一個完全透明不透明(不透明度 = 1)。您應(yīng)該能夠通過正確初始化不透明度來解決問題:


root.getChildren().addAll(pane1, pane2, pane3);


// set opacity for all but the last child to 0

List<Node> children = root.getChildren();

for (int i = children.size()-2; i >= 0; i--) {

    children.get(i).setOpacity(0);

}

否則會發(fā)生以下情況:


就在pane1.toFront(). 請注意 (SequentialTransition確保已建立動畫開始的狀態(tài)。


最頂層的節(jié)點是列表中的最后一個子節(jié)點,----...位于可見“層”的旁邊。


Pane 1: opacity = 0

Pane 3: opacity = 1 ------------------------------

Pane 2: opacity = 1

現(xiàn)在,在完成前半部分后SequentialTransition,如下所示:


Pane 1: opacity = 0

Pane 3: opacity = 0

Pane 2: opacity = 1 ------------------------------

動畫完成后:


Pane 1: opacity = 1 ------------------------------

Pane 3: opacity = 0

Pane 2: opacity = 1

使用pane3.toFront()產(chǎn)生類似的結(jié)果:


Pane 3: opacity = 0

Pane 1: opacity = 1 ------------------------------

Pane 2: opacity = 1

Pane 3: opacity = 0

Pane 1: opacity = 0

Pane 2: opacity = 1 ------------------------------

Pane 3: opacity = 1 ------------------------------

Pane 1: opacity = 0

Pane 2: opacity = 1


查看完整回答
反對 回復(fù) 2023-06-04
  • 1 回答
  • 0 關(guān)注
  • 208 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號