JavaFX switch scenes 💞

แชร์
ฝัง
  • เผยแพร่เมื่อ 18 ม.ค. 2025

ความคิดเห็น • 158

  • @BroCodez
    @BroCodez  4 ปีที่แล้ว +33

    //--------------------------------Main.java--------------------------------------
    package application;

    import javafx.application.Application;
    import javafx.fxml.FXMLLoader;
    import javafx.stage.Stage;
    import javafx.scene.Parent;
    import javafx.scene.Scene;
    public class Main extends Application {

    @Override
    public void start(Stage stage) {
    try {

    Parent root = FXMLLoader.load(getClass().getResource("Scene1.fxml"));
    Scene scene = new Scene(root);
    stage.setScene(scene);
    stage.show();

    } catch(Exception e) {
    e.printStackTrace();
    }
    }
    public static void main(String[] args) {
    launch(args);
    }
    }
    //---------------------------------SceneController.java---------------------------------------
    package application;
    import java.io.IOException;
    import javafx.event.ActionEvent;
    import javafx.fxml.FXMLLoader;
    import javafx.scene.Node;
    import javafx.scene.Parent;
    import javafx.scene.Scene;
    import javafx.stage.Stage;
    public class SceneController {
    private Stage stage;
    private Scene scene;
    private Parent root;

    public void switchToScene1(ActionEvent event) throws IOException {
    root = FXMLLoader.load(getClass().getResource("Scene1.fxml"));
    stage = (Stage)((Node)event.getSource()).getScene().getWindow();
    scene = new Scene(root);
    stage.setScene(scene);
    stage.show();
    }

    public void switchToScene2(ActionEvent event) throws IOException {
    Parent root = FXMLLoader.load(getClass().getResource("Scene2.fxml"));
    stage = (Stage)((Node)event.getSource()).getScene().getWindow();
    scene = new Scene(root);
    stage.setScene(scene);
    stage.show();
    }
    }
    //-----------------------------------------Scene1.fxml-------------------------------------------------












    //-----------------------------------------Scene2.fxml-------------------------------------------------












    //------------------------------------------------------------------------------------------------------

    • @catharperfect7036
      @catharperfect7036 9 หลายเดือนก่อน

      I accidentally typed .getScene(scene); instead of .setScene(scene); and it took me 10 minutes to fix it.
      Am I doomed at coding?

    • @desmondkuffour397
      @desmondkuffour397 6 หลายเดือนก่อน

      @@catharperfect7036 you're doomed if you stop.

  • @JLSXMK8
    @JLSXMK8 4 ปีที่แล้ว +16

    You literally uploaded this just in time!!! I was wondering how I could switch scenes in JavaFX, because I'll need to work on a project coming up. Let me tell you, if the stuff in this video works on my PC, you've just saved the entire thing for me! Thank you!

  • @carolinezeiler8112
    @carolinezeiler8112 2 ปีที่แล้ว +4

    You just saved the day (23:25). Been working on this all afternoon, my head is going to explode. Been looking in all my books, been watching all my usual tutorials and some others, your code is the only one that actually worked. THANKS ++++ I learned that you do not have access to the Controller Panel on the bottom left part of the SceneBuilder when you open it in IntelliJ. You can only access it within SceneBuilder itself.

  • @alesto8962
    @alesto8962 3 ปีที่แล้ว +5

    Love this video. I was wondering how to do this switching the scenes, now thanks to you I'm enlightened:)

  • @ernanfer2
    @ernanfer2 3 ปีที่แล้ว

    I like all your videos about javaFx ...thanks for share

  • @misharatkevich9808
    @misharatkevich9808 3 ปีที่แล้ว +2

    HOLY FUCKING SHIT, the scene/screen switch is EXACTLY the problem that stumped me earlier on my first serious project, so much so that it really killed my motivation at that time, and everything I could find on the subject was something monstrously complicated and big that I couldn't adapt and make work.
    I'll need to test this myself, of course, but... this looks so concise. This looks REALLY concise. I still have the question of "can this work if each of the two methods is in its own separate controller?" (so that you don't have to have the same controller for all the scenes). but other than that... this is so concise. And the only complex part that I'm not fully understanding yet is the Stage/Node/event cast, which is a lot of casting and chaining and I'll need to read the docs more carefully to see how and why this works, but if this works out for me... holy shit, this is what I needed. I think this is what I needed.
    Thanks a lot, man.
    EDIT: Update, did it slightly differently (with some other help), but in a similar way. I'm not sure if this is the best option, but this helped A LOT. Thank you.

    • @hunchortw
      @hunchortw 2 ปีที่แล้ว

      do you mind helping me out by saying what way you did it? because i can't get the scenes to swtich, it gives me pointer null error.

    • @StarDust4866
      @StarDust4866 2 ปีที่แล้ว

      @@hunchortw Not sure you'll see this but what solved it for me was putting the fxml files in the resources file. No problems after that.

  • @andrijakolenda8161
    @andrijakolenda8161 2 ปีที่แล้ว

    Really appreciate the video, even though scene builder isn't popular content. Helped me a ton brother!

  • @saimhafeez4240
    @saimhafeez4240 3 ปีที่แล้ว +18

    what about going back to scene 1 without making new scene ?

    • @aldolunabueno2634
      @aldolunabueno2634 8 หลายเดือนก่อน +1

      This is a good question, because sometimes we want to our software to be less resource-intensive. This is my approach:
      public class SceneController {
      static private Stage stage;
      static private Scene scene1;
      static private Scene scene2;
      @FXML
      private void switchToScene1(ActionEvent event) {
      stage.setScene(scene1);
      stage.show();
      System.out.println("Stage: " + stage);
      System.out.println("Scene 1: " + scene1);
      }
      @FXML
      private void switchToScene2(ActionEvent event) throws IOException {
      if (scene2 == null) {
      Parent root = FXMLLoader.load(this.getClass().getResource("scene2.fxml"));
      scene2 = new Scene(root);
      scene1 = ((Node)event.getSource()).getScene();
      stage = (Stage) scene1.getWindow();
      }
      stage.setScene(scene2);
      stage.show();
      System.out.println("Stage: " + stage);
      System.out.println("Scene 2: " + scene2);
      }
      }

    • @lenaandthelambcampingadven3422
      @lenaandthelambcampingadven3422 7 หลายเดือนก่อน

      So this is how one should create a modular Ui? Scenes are a collection of linked Ui elements

  • @ShinduPK4
    @ShinduPK4 2 ปีที่แล้ว

    Bro I'm writing a quick, trash GUI for a project and you've been a LIFE SAVER. Love you

  • @mustaphaELHOURA
    @mustaphaELHOURA 3 ปีที่แล้ว +2

    The best teacher ever, thank you!

  • @huzaifaalam8358
    @huzaifaalam8358 7 หลายเดือนก่อน

    Thank you very much for this video. I have been struggling for the past two nights and could not find the solution until I watched this one.

  • @mariagabrielamaiz3878
    @mariagabrielamaiz3878 9 หลายเดือนก่อน

    100% useful for begginers 😁 thanks

  • @alexanderzharkov6953
    @alexanderzharkov6953 3 ปีที่แล้ว

    You are the best. Keep going. I am glad I've found your channel

  • @nisarshaikh-e6o
    @nisarshaikh-e6o 8 หลายเดือนก่อน

    i like your video,i am learing javafx from you

  • @johnmcafee9169
    @johnmcafee9169 2 ปีที่แล้ว +1

    this course is really helpful

  • @realrrnc
    @realrrnc 4 ปีที่แล้ว

    The best one who do programming

  • @Kennerdoll
    @Kennerdoll 2 ปีที่แล้ว +1

    3:08 - I'm kindly asking if you could explain what you mean by "CASTING" in the context you are using it.

  • @kaisander5672
    @kaisander5672 3 ปีที่แล้ว +10

    Its a great tutorial and all but theres a lot of stuff that i don't understand that wasn't explained... Especially the five lines of code that are in the methods for switching scene. I would've liked it a lot more if there was a bit more explanation as to why you wrote the lines that you did. thanks

  • @peterg.1821
    @peterg.1821 ปีที่แล้ว

    I appreciate your video! It provided me with significant assistance. Greetings from Vienna!

  • @learntoswim512
    @learntoswim512 2 ปีที่แล้ว +3

    Any reason why you don't need to add @FXML before the switchToScene1 and 2 function? I had to to make it work. Thanks.

  • @raihanfulviansyah
    @raihanfulviansyah 2 ปีที่แล้ว

    gg bang,karena video ini tugas akhir sekolahku telah berjalan😁😁

  • @StrawberryLatteMeow
    @StrawberryLatteMeow 2 ปีที่แล้ว

    Thank you so much so the Javafx tutorials! you are a lifesaver

  • @kenkinyua7036
    @kenkinyua7036 3 ปีที่แล้ว

    much respect and gratitude to you bro💯

  • @michaelsd28
    @michaelsd28 3 ปีที่แล้ว

    the way you explain is awesome! thank you!

  • @anandbmuley
    @anandbmuley 3 ปีที่แล้ว

    Thank You @Bro Code. Finally I found a simple solution. Thank for sharing this video :)

  • @mokamagdy3200
    @mokamagdy3200 หลายเดือนก่อน

    amazing

  • @elmanuele6558
    @elmanuele6558 2 ปีที่แล้ว

    thank you, just thanks for this video ❤

  • @malikshahzaib3313
    @malikshahzaib3313 4 ปีที่แล้ว +5

    Hi bro thanks. Bro, Make a video on roadmap for java.

  • @ashkanshakiba9579
    @ashkanshakiba9579 3 ปีที่แล้ว

    Useful 👌👍

  • @crazy-forever
    @crazy-forever 8 หลายเดือนก่อน

    It was soo helpful and fun toooo

  • @chrisalbers1370
    @chrisalbers1370 3 ปีที่แล้ว +1

    Finally got it!!! Thank you my dudee!!!!

  • @Jhonyhndz
    @Jhonyhndz ปีที่แล้ว

    Muchas gracias. Te felicito, tienes una forma muy agradable de enseñar.

  • @Arxa93
    @Arxa93 3 ปีที่แล้ว

    Another comment because you're saving my university life

  • @JamesBrodski
    @JamesBrodski ปีที่แล้ว

    Thank you so much! This helped a lot! God bless :)

  • @imadnosairat480
    @imadnosairat480 ปีที่แล้ว

    thank you very much :D
    from deep of my heart

  • @chemso_1
    @chemso_1 9 หลายเดือนก่อน

    da best

  • @sushantlama9010
    @sushantlama9010 4 ปีที่แล้ว

    Life saver❤️❤️❤️❤️❤️❤️🙏👍

  • @audryespinoza8153
    @audryespinoza8153 2 ปีที่แล้ว

    Muchas gracias por el codigo, me ayudo mucho a entender este procesoooo
    Thank you sooo much

  • @MILENA-mh2wf
    @MILENA-mh2wf 9 หลายเดือนก่อน

    that’s a great video! thanks u really help me)

  • @cadamsmith
    @cadamsmith 2 ปีที่แล้ว

    great content, exactly what I was looking for

  • @techhub_
    @techhub_ 2 ปีที่แล้ว

    Amazing, you made things so easy!

  • @ahmedshafiq9074
    @ahmedshafiq9074 2 ปีที่แล้ว

    good work

  • @pay4ok983
    @pay4ok983 ปีที่แล้ว

    Which version sdk do you use and you use maven or gradle

  • @piezadigital
    @piezadigital 2 ปีที่แล้ว

    Encontré lo que necesitaba en este video, gracias.

  • @AbhijeetKumar-cm3jh
    @AbhijeetKumar-cm3jh 3 ปีที่แล้ว

    Loving this Series

  • @rolakhaled5070
    @rolakhaled5070 8 หลายเดือนก่อน

    amazingley amazing

  • @alexmartinezmunoz94
    @alexmartinezmunoz94 ปีที่แล้ว

    Thank you 😭💕💞

  • @Bruh-405
    @Bruh-405 2 ปีที่แล้ว

    Bussin

  • @oussamajmaa9205
    @oussamajmaa9205 2 ปีที่แล้ว +1

    thank you so much it works perfectly , but can i send data from scenes using this method ?

  • @SuMyatHoney
    @SuMyatHoney 4 ปีที่แล้ว

    Hi thanks for the tutorial I am subing

  • @michaelsd28
    @michaelsd28 3 ปีที่แล้ว

    great tutorial

  • @2233zzwei
    @2233zzwei 4 ปีที่แล้ว

    Great video! Can you do a JavaScript tutorial?

  • @eliasbergmann7356
    @eliasbergmann7356 2 ปีที่แล้ว

    Love your content! this really helped! could you make a tutorial on Windowbuilder?

  • @ibrahimeltoukhy1864
    @ibrahimeltoukhy1864 หลายเดือนก่อน

    best bro coder

  • @hasankhani6285
    @hasankhani6285 2 ปีที่แล้ว

    Best

  • @jasperb.2003
    @jasperb.2003 3 ปีที่แล้ว

    Awesome

  • @kaneshirosora1707
    @kaneshirosora1707 3 ปีที่แล้ว +2

    how the sceneController class is connected to main method ? from what i saw is we didnt inherit or declare any method from sceneController class into the main method. or is it because of the Scene1.fxml file connected to the sceneController class ?

    • @onfued3088
      @onfued3088 9 หลายเดือนก่อน

      the Scene1.fxml file connected to the sceneController class

  • @annexsoftworks
    @annexsoftworks 3 ปีที่แล้ว

    Excellent vid

  • @lorenzogradaschi3711
    @lorenzogradaschi3711 2 ปีที่แล้ว

    is this also showing the stage in the same window or not? or is creating another window?

  • @krisinfo7823
    @krisinfo7823 7 หลายเดือนก่อน

    Excellent!! Thank you!1

  • @mayurpatel481
    @mayurpatel481 2 ปีที่แล้ว

    Really helpful. Thanks a lot.

  • @romanmatton2636
    @romanmatton2636 ปีที่แล้ว

    nice video

  • @englishgrammartutorial9618
    @englishgrammartutorial9618 4 ปีที่แล้ว

    Go ahead,excellent

  • @brahimage
    @brahimage 10 หลายเดือนก่อน +1

    me and you against my comp engineering degree

  • @wesleybritovlk
    @wesleybritovlk ปีที่แล้ว

    You are beautiful! THANK YOU BRO!

  • @alessioolivieri5460
    @alessioolivieri5460 2 ปีที่แล้ว

    Thanki you very interesting

  • @maealcantara5147
    @maealcantara5147 2 ปีที่แล้ว

    Does the other scene closes when it switches to another scene?

  • @alesto8962
    @alesto8962 2 ปีที่แล้ว

    Im back to this video with additional question. Bro how to measure the time between switching scenes in mili or nanoseconds? I know for this example it is nearly 0 but for more complicated memory-eating scenes?

  • @AdamOndryas
    @AdamOndryas ปีที่แล้ว

    great ivd bor

  • @LampaHQ
    @LampaHQ 2 ปีที่แล้ว

    Wonderful, thank you

  • @TheGreat8220
    @TheGreat8220 2 ปีที่แล้ว

    Keep up the awesome work!

  • @kimevar
    @kimevar 4 ปีที่แล้ว

    Nice videos keep up the good work!

  • @juzerbaatwala8868
    @juzerbaatwala8868 ปีที่แล้ว

    superb!

  • @chocodonuts3644
    @chocodonuts3644 ปีที่แล้ว

    WOW you are amazing

  • @MorsHs
    @MorsHs 3 ปีที่แล้ว

    Hi i have some question.. Iam new in programming but what is the difference of the "Pane" and "Parent" . Using a Scene Builder

  • @ApenDover
    @ApenDover 2 ปีที่แล้ว

    How to do that fullscreen for both stages with initialize func?

  • @mikoo_k
    @mikoo_k ปีที่แล้ว

    bro , you are so good

  • @mr.RAND5584
    @mr.RAND5584 2 ปีที่แล้ว

    Switch scene using the menu click?

  • @Surgeryxperts
    @Surgeryxperts 4 ปีที่แล้ว

    Hey bro can you please make a tetris game in java

  • @saurabhatre2158
    @saurabhatre2158 ปีที่แล้ว

    Thanks Thanks 😊

  • @oleksandr3275
    @oleksandr3275 2 ปีที่แล้ว

    Thank you. It helped me :)

  • @ozy_drag5309
    @ozy_drag5309 ปีที่แล้ว

    this guys the goat

  • @alfredochola5971
    @alfredochola5971 2 ปีที่แล้ว

    Thanks bro😃😂

  • @mahmoudnasr8710
    @mahmoudnasr8710 2 ปีที่แล้ว

    Thanks bro 👌

  • @David-hv9zn
    @David-hv9zn ปีที่แล้ว

    👍

  • @sweetlies1937
    @sweetlies1937 3 ปีที่แล้ว

    Thank you so much, bro! x)

  • @FBball.13
    @FBball.13 ปีที่แล้ว

    bro's the best

  • @fahengraphic7743
    @fahengraphic7743 ปีที่แล้ว

    Perfect man, thanks a lot

  • @ionminascurta3274
    @ionminascurta3274 2 ปีที่แล้ว

    I try to switch some scenes that are in fullscreen mode, but isn't working even if I set Fullscreen on true before showing it.

  • @fidam1483
    @fidam1483 3 ปีที่แล้ว

    Hello is it possible to switch from an fxml scene to an xml scene with the same way please ?

  • @realrrnc
    @realrrnc 4 ปีที่แล้ว

    Can u make with scene builder bec I can not download it. Only one video with those plsssss

  • @mehdiel7218
    @mehdiel7218 3 ปีที่แล้ว

    Thank you Dear

  • @muneermjmuneer1099
    @muneermjmuneer1099 2 ปีที่แล้ว

    Thanks a lot

  • @aminrezaabbasi7813
    @aminrezaabbasi7813 2 ปีที่แล้ว

    That was great, thank you

  • @MaryamPrhn
    @MaryamPrhn ปีที่แล้ว

    great!!

  • @albertovigna1268
    @albertovigna1268 2 ปีที่แล้ว

    GR8 VIDEO M8!
    THANKS!!!

  • @hamzachiguer642
    @hamzachiguer642 2 ปีที่แล้ว

    Thank you bro

  • @selekt7
    @selekt7 ปีที่แล้ว +1

    Ehi, I updated some line and extended this to other two classes and it worked:
    public abstract class SceneController {
    private Stage stage;
    private Scene scene;
    private FXMLLoader fxmlLoader;
    public void goToGame(ActionEvent event) throws IOException {
    fxmlLoader = new FXMLLoader(Application.class.getResource("scene1.fxml"));
    stage = (Stage) ((Node) event.getSource()).getScene().getWindow();
    scene = new Scene(fxmlLoader.load());
    stage.setScene(scene);
    stage.show();
    }
    public void goToMenu(ActionEvent event) throws IOException {
    fxmlLoader = new FXMLLoader(Application.class.getResource("scene2.fxml"));
    stage = (Stage) ((Node) event.getSource()).getScene().getWindow();
    scene = new Scene(fxmlLoader.load());
    stage.setScene(scene);
    stage.show();
    }
    }
    public class MenuController extends SceneController {
    @Override
    public void goToGame(ActionEvent event) throws IOException {
    super.goToGame(event);
    }
    }

  • @longkesh1971
    @longkesh1971 2 หลายเดือนก่อน

    Thanks bro.

  • @tx6723
    @tx6723 ปีที่แล้ว

    How can I use it in from a different controller in a different pac