Uploaded image for project: 'JDK'
  1. JDK
  2. JDK-8127025

Refreshing/redrawing issues when switching Scene on Linux

XMLWordPrintable

    • Icon: Bug Bug
    • Resolution: Duplicate
    • Icon: P4 P4
    • 7u6
    • fx2.1
    • javafx
    • Linux Mint 9, Intel Atom

      I am implementing a graphical menu in which I switch between several Scenes. While the following code is working flawlessly on MacOS X, I have refresh problems on Linux. The primaryStage is updated with the new Scene correctly (I can see the title of the form changing), however the new Scene is not drawn until I explicitly interact with the primaryStage, e.g. selecting or moving it.

      ----------------------
          private synchronized void changeScene(GUIScene gs) {
              logger.info("ChangeScene: " + gs.getKey());
              switch (gs) {
                  case MAIN_MENU:
                      Platform.runLater(new Runnable() {
                          @Override
                          public void run() {
                              primaryStage.setScene(MainMenuSceneSing.get().getMainMenuScene());
                              primaryStage.setTitle(MainMenuSceneSing.get().getMainMenuTitle());
                          }
                      });

                      break;
                  case PHOTO_MENU:
                      
                      Platform.runLater(new Runnable() {
                          @Override
                          public void run() {
                              primaryStage.setScene(PhotoMenuSceneSing.get().getPhotoMenuScene());
                              primaryStage.setTitle(PhotoMenuSceneSing.get().getPhotoMenuTitle());
                          }
                      });
                      
                      break;
                  case AUDIO_MENU:
                      Platform.runLater(new Runnable() {
                          @Override
                          public void run() {
                              primaryStage.setScene(AudioMenuSceneSing.get().getAudioMenuScene());
                              primaryStage.setTitle(AudioMenuSceneSing.get().getAudioMenuTitle());
                          }
                      });
                      break;

                  case MOVIE_MENU:
                      Platform.runLater(new Runnable() {
                          @Override
                          public void run() {
                              primaryStage.setScene(MovieMenuSceneSing.get().getMovieMenuScene());
                              primaryStage.setTitle(MovieMenuSceneSing.get().getMovieMenuTitle());
                          }
                      });
                      
                      break;
                      
              }

          }

      ----------------------

            radko Radko Najman (Inactive)
            dmericojfx Davide Merico (Inactive)
            Votes:
            0 Vote for this issue
            Watchers:
            2 Start watching this issue

              Created:
              Updated:
              Resolved:
              Imported: