Fade-In/ Fade-Out ein Bildschirm in JavaFx
Machte ich eine JavaFx-Anwendung, die eine Haupt-Bildschirm. Und dass der Haupt-Bildschirm enthält die Tasten, jede Taste zeigt verschiedene Bildschirme. Jetzt möchte ich, wenn ich eine Taste drücken, meinen aktuellen Bildschirm, um FadeOut und neuen Bildschirm zu FadeIn.
public class GuiPractice extends Application {
private Stage stage;
public static void main(String[] args) {
Application.launch(GuiPractice.class, (java.lang.String[])null);
}
@Override
public void start(Stage primaryStage) throws Exception {
try{
stage = primaryStage;
stage.setTitle("HOME SCREEN");
gotoWelcome();
stage.show();
} catch(Exception ex){
Logger.getLogger(GuiPractice.class.getName()).log(Level.SEVERE,null,ex);
}
}
private void gotoWelcome(){
try{
WelcomePageController wc = (WelcomePageController) replaceScene("WelcomePage.fxml"); //Check 'replaceScene' Below
wc.setApp(this);
} catch (Exception ex){
Logger.getLogger(GuiPractice.class.getName()).log(Level.SEVERE,null,ex);
}
}
//When I Press Button Action Handler Calls This Method..
//This Method is Working Fine, Except For the FandIn Portion
private void gotoSignin(){
try{
SigninPageController wc = (SigninPageController) replaceScene("SigninPage.fxml"); //Check 'replaceScene' Below
wc.setApp(this);
///THIS PORTION IS FADE TRANSITION, IT IS NOT WORKING
FadeTransition ft = new FadeTransition(Duration.millis(3000));
ft.setFromValue(0.0);
ft.setToValue(1.0);
ft.play();
} catch (Exception ex){
Logger.getLogger(GuiPractice.class.getName()).log(Level.SEVERE,null,ex);
}
}
private Initializable replaceScene(String fxml) throws Exception {
FXMLLoader loader = new FXMLLoader();
InputStream ins = GuiPractice.class.getResourceAsStream(fxml);
loader.setBuilderFactory(new JavaFXBuilderFactory());
loader.setLocation(GuiPractice.class.getResource(fxml));
AnchorPane page;
try {
page = (AnchorPane) loader.load(ins);
} finally {
ins.close();
}
Scene scene = new Scene(page);
stage.setScene(scene);
stage.sizeToScene();
return (Initializable) loader.getController();
}
}
InformationsquelleAutor Desh_Er_Bojha | 2014-07-27
Du musst angemeldet sein, um einen Kommentar abzugeben.
Müssen Sie passieren die
node
auf, die Sie anwenden möchtenTransition
dem Konstruktor derFadeTransition
.Ansatz 1
So können Sie nehmen Sie die folgenden Zeilen und fügen Sie Sie in Ihre replaceScene() vor
scene = new Scene(page)
Obwohl es ein
Fading Effect
auf der willkommen-Bildschirm als gut und Sie haben etwas Logik zu avid !Ansatz 2
Laden Sie die
fxml
innerhalb dergotoSignin()
/Holen Sie sich dieAnchorpane
Referenz und übergeben es an die controller. Obwohl, ich glaube, das bringt eine Menge änderungen für Ihre aktuelle design ! Können Sie einen Anruf entgegennehmen und entscheiden !Hoffe, es hilft !
InformationsquelleAutor ItachiUchiha
Ja, natürlich, könnten Sie ein fade-out-Effekt - nur inverse Werte von und zu, der Ihr FadeTransition, wie:
InformationsquelleAutor MaxKing