2013-10-23 51 views
1

1)如何在fxml文件之间切换时在javafx中添加转换动画。 2)如何在按钮中添加CSS效果,如悬停效果和流行的按钮效果。如何添加转换动画来切换JAVA FX FXML

我正在使用javafx项目。我无法使用动画更改fxml添加到它。我也需要帮助如何为按钮创建css。

这里是切换fxml的代码。

public void start(Stage primaryStage) { 

    try { 
     stage = primaryStage; 

     gotohome(); 

     primaryStage.show(); 
    } catch (Exception ex) { 
     Logger.getLogger(Main.class.getName()).log(Level.SEVERE, null, ex); 
    } 
} 

public void gotohome() { 
    try { 
     FXMLController home = (FXMLController) replaceSceneContent("Homepage.fxml"); 
     home.setApp(this); 
    } catch (Exception ex) { 
     Logger.getLogger(Main.class.getName()).log(Level.SEVERE, null, ex); 
    } 
} 

public void gotoproductwise() { 
    try { 
     SampleController product_wise = (SampleController) replaceSceneContent("/product_wise/product_wise.fxml"); 
     product_wise.setApp(this); 
    } catch (Exception ex) { 
     Logger.getLogger(Main.class.getName()).log(Level.SEVERE, null, ex); 
    } 
} 


private Initializable replaceSceneContent(String fxml) throws Exception { 
    FXMLLoader loader = new FXMLLoader(); 
    InputStream in = Main.class.getResourceAsStream(fxml); 
    loader.setBuilderFactory(new JavaFXBuilderFactory()); 
    loader.setLocation(Main.class.getResource(fxml)); 
    AnchorPane page; 
    try { 
     page = (AnchorPane) loader.load(in); 
    } finally { 
     in.close(); 
    } 

    // Store the stage width and height in case the user has resized the window 
    double stageWidth = stage.getWidth(); 
    if (!Double.isNaN(stageWidth)) { 
     stageWidth -= (stage.getWidth() - stage.getScene().getWidth()); 
    } 

    double stageHeight = stage.getHeight(); 
    if (!Double.isNaN(stageHeight)) { 
     stageHeight -= (stage.getHeight() - stage.getScene().getHeight()); 
    } 

    Scene scene = new Scene(page); 
    if (!Double.isNaN(stageWidth)) { 
     page.setPrefWidth(stageWidth); 
    } 
    if (!Double.isNaN(stageHeight)) { 
     page.setPrefHeight(stageHeight); 
    } 

    // stage.setOpacity(1); 
    stage.setScene(scene); 
    stage.sizeToScene(); 
    return (Initializable) loader.getController(); 
} 
+0

你能后的你是如何FXMLs之间切换一些代码? – Magcus

回答

1

因为在这里你的第二个问题是,一些样品的风格:

.button:hover { 
    -fx-background-color: #9ACD32; 
} 
+0

感谢您的回复。我正在给代码切换fxml。 – Codelord