2016-04-09 12 views
1

Ben 2 farklı sahneler arasında geçiş yapmak istiyorum.Switching sahneleri dinamik

Sahne 2: aşamalı saydamdır ve Sahne dönmek için sadece 1 düğme var 1.

boyunca hep şeffaf onu sadece her sahne için farklı bir fxml sahip ve yeni bir sahneyi her zaman oluşturarak yapmak mümkün ben onları değiştir.

Olay yerine 1'e sahneden 2 geçtiğinizde sorun, olay yerine 1 yüklenen tüm resimler orada (IT'S Özür yerine "yükleme" Scene1 daha yeni bir sahne oluşturmak gibi aşikar.

değildir ?

Ben 1

Scene1

public class ControllerImpl implements Initializable, ControlledScreen { 
ScreensController myController; 
public void initialize(URL url, ResourceBundle rb) { 
} 
public void setScreenParent(ScreensController screenParent){ 
    myController = screenParent; 
} 
@FXML 
private void goToScreen2(ActionEvent event) throws Exception{ 
    try { 
     Stage primaryStage = (Stage) hideStage.getScene().getWindow(); 
     FXMLLoader fxmlLoader = new FXMLLoader(getClass().getResource("/arrow.fxml")); 
     Parent root1 = fxmlLoader.load(); 
    primaryStage.setScene(new Scene(root)); 
    } 
    catch (Exception e) { 
     e.printStackTrace(); 
    } 
} 
@FXML 
public javafx.scene.control.Button hideStage; 

}

Scene2 Sahne Sahne 2'den ü çalıştırdığınız zaten yüklenmiş görüntüleri tutmak için bir yol var mı:Sen gibi sahnenin sahne geçiş yapabilirsiniz

cevap

1
public class ControllerArrow implements Initializable{ 

ScreensController myController; 

@Override 
public void initialize(URL url, ResourceBundle rb) { 
} 

public void setScreenParent(ScreensController screenParent){ 
    myController = screenParent; 
} 

@FXML 
public javafx.scene.control.Button showStage; 

@FXML 
private void goToScreen1(ActionEvent event) throws Exception{ 

    try{ 

     Stage stage = (Stage) showStage.getScene().getWindow(); 

     FXMLLoader fxmlLoader = new FXMLLoader(getClass().getResource("/sample.fxml")); 
     Parent root = fxmlLoader.load(); 

    } 
    catch (Exception e) { 
     e.printStackTrace(); 
    } 
} 

}: Eğer sahnenin bir örneğini olduğunda

Stage stage = (Stage) scene.getWindow(); 
stage.setScene(yourScene); 

Yani, sahnede

+0

sayesinde uygulayabilirsiniz cevabınız için. Bir önceki sahneyi nasıl seçebilirim? 2 farklı kontrol cihazım var. Ana sahneleri tanımlamalı mıyım? –

+0

Sahnelerinizi nasıl örneklendirirsiniz? Tam bir kod örneği yararlı olacaktır. – jns

+0

Soruna kodu ekledim. –