Zarábaj až 6 000 € mesačne! Akreditované rekvalifikačné kurzy od 0 €. Viac informácií.

Diskusia – JavaFX 2 QUICKSTART: Udalosti a CSS

Späť

Upozorňujeme, že diskusie pod našimi online kurzami sú nemoderované a primárne slúžia na získavanie spätnej väzby pre budúce vylepšenie kurzov. Pre študentov našich rekvalifikačných kurzov ponúkame možnosť priameho kontaktu s lektormi a študijným referentom pre osobné konzultácie a podporu v rámci ich štúdia. Toto je exkluzívna služba, ktorá zaisťuje kvalitnú a cielenú pomoc v prípade akýchkoľvek otázok alebo projektov.

Komentáre
Avatar
Pavel Vosyka
Člen
Avatar
Pavel Vosyka:7.10.2015 15:35

Jsou tady i media queries a dají se tak dělat responzivní aplikace, podobně jako weby?

Odpovedať
7.10.2015 15:35
"nikdy nepiš nic 2x" (updated 10 years after: "Není nic špatného na tom napsat něco 2x")
Avatar
Odpovedá na Pavel Vosyka
Petr Štechmüller:7.10.2015 16:07

Ahoj, media queries tu nejsou. Dale tu nejsou žádné věci z CSS3 + nějaké pseudotridy z CSS 2.1. Ale responzivni aplikace se dají dělat, melo by stačit používat správný layouty...

Odpovedať
7.10.2015 16:07
Pokud spolu kód a komentář nekorespondují, budou patrně oba chybné
Avatar
Pavel Vosyka
Člen
Avatar
Odpovedá na Petr Štechmüller
Pavel Vosyka:9.10.2015 12:57

Aha, aha. Díky :-)

Odpovedať
9.10.2015 12:57
"nikdy nepiš nic 2x" (updated 10 years after: "Není nic špatného na tom napsat něco 2x")
Avatar
Pavol Franek
Člen
Avatar
Pavol Franek:16.11.2017 20:07

Ahoj, síce to v texte nepíšeš ale predpokladám že podľa metódy noBT.setOnMou­seEntered sa malo tlačidlo pohybovať vždy keď naň prejdeš myšou ale to ti nefunguje.

Podľa všetkého to nefunguje v BorderPane ale len v klasickom Pane.
Ak by niekomu pomohlo ja som to vyriešil takto.

public void start(Stage primaryStage)
    {
        try
        {
            Font font = Font.font("Verdena", FontWeight.BOLD, 20);      //vytvorenie instancie pre typ pisma

            BorderPane rootPane = new BorderPane();                     //vytvorenie BorderPane rozvrhnutia, tento uzol bude root node sceny grafu
            rootPane.setPadding(new Insets(20));                        //nastavenie medzeri medzi komponentami

            VBox topPane = new VBox();                                  //vytovrenie VBox rozvrhnutia
            topPane.setAlignment(Pos.CENTER);                           //nastavenie zarovnania obsahu VBox na stred
            Label questionLB = new Label();                             //vytvorenie labelu bez textu
            questionLB.setText("Páči sa Vám tento tutorial?");          //nastavenie textu labelu
            questionLB.setFont(font);                                   //nastavenie fontu pre label
            topPane.getChildren().add(questionLB);                      //priadnie labelu do rozvrhnutia

            VBox bottomPane = new VBox();                               //vytovrenie VBox rozvrhnutia
            bottomPane.setAlignment(Pos.CENTER);                        //nastavenie zarovnania obsahu
            final Label responseLB = new Label();                       //vytvorenie labelu bez textu
            responseLB.setFont(font);                                   //nastavenie fontu pre label
            bottomPane.getChildren().add(responseLB);                   //priadnie labelu do rozvrhnutia

            rootPane.setTop(topPane);                                   //vlozenie do Top casti BorderPane rozvrhnutia VBox so stitkom
            rootPane.setBottom(bottomPane);                             //vlozenie do Bottom casti BorderPane rozvrhnutia VBox so stitkom

            yesBT = new Button("Ano");                                  //vytvorenie noveho tlacidla s popiskom
            yesBT.setFont(font);                                        //nastavenie fontu pre tlacidlo
            noBT = new Button("Nie");                                   //vytvorenie noveho tlacidla s popiskom
            noBT.setFont(font);                                         //nastavenie fontu pre tlacidlo
            noBT.setLayoutX(120);                                       //nastavenie prvej X pozicie tlacidal
            noBT.setLayoutY(77);                                        //nastavenie prvej Y pozicie tlacidal

            GridPane centerPane = new GridPane();                       //vytvorenie GridPane rozvrhnutiia

            centerPane.setPrefSize(PANE_WIDTH, PANE_WIDTH);             //nastavenie pozadovanej velkosti rozvrhnutia pre GridPane
            centerPane.add(yesBT, 0, 0);                                //umiestnenie tlacidla na poziciu stlpca (x) = 0, riadku (y) = 0 v rozvrhnutia GridPane

            Pane btPane = new Pane();                                   //vytvorenie Pane rozvrhnutia
            btPane.setPrefHeight(BT_PANE_HIGHT);                        //nastavenie preferovanej velkosti
            btPane.setPrefWidth(BT_PANE_WIDTH);                         //nastavenie preferovanej velkosti
            btPane.getChildren().add(noBT);                             //priadeni tlacdla do Pain
            centerPane.add(btPane, 1, 0);                               //umiestnenie Pane na poziciu stlpca (x) = 1, riadku (y) = 0 v rozvrhnutia GridPane
            centerPane.setHgap(30);                                     //nastavenie vodorovnej medzeri medzi komponentami
            centerPane.setAlignment(Pos.CENTER);                        //nastavenie zarovnania obsahu GridPane na stred

            rootPane.setCenter(centerPane);

            //tlacidlo yesBT si zaregistruje ovladac(handler), ktorý bude reagovat na udalost - kliknutie na tlacidlo
            yesBT.setOnAction(new EventHandler<ActionEvent>()
            {
                //metoda, v ktroej je urcene, co sa vykona v priapde zavolania handleru
                @Override
                public void handle(ActionEvent event)
                {
                    responseLB.setText("Ďakujem, pochvala poteší.");
                }
            }
            );

            //tlacidlo yesBT si registruje ovladac(handler), ktorý bude reagovat na udalost - kurzor prejde na tlacidlo
            yesBT.setOnMouseEntered(new EventHandler<MouseEvent>()
            {
                //metoda, v ktorej je urcena co sa vykona v pripade zavolania handleru
                @Override
                public void handle(MouseEvent event)
                {
                    yesBT.setScaleX(1.5);                               //nastavuje meradlo, podla ktoreho sa bude velkost komponentu menit pozdlz osy x
                    yesBT.setScaleY(1.5);                               //nastavuje meradlo, podla ktoreho sa bude velkost komponentu menit pozdlz osy y
                }
            }
            );

            //tlacidlo yesBT si registruje ovladac(handler), ktorý bude reagovat na udalost - kurzor opusti tlacidlo
            yesBT.setOnMouseExited(new EventHandler<MouseEvent>()
            {
                //metoda, v ktorej je urcena co sa vykona v pripade zavolania handleru
                @Override
                public void handle(MouseEvent event)
                {
                    yesBT.setScaleX(1);                                 //nastavuje meradlo, podla ktoreho sa bude velkost komponentu menit pozdlz osy x
                    yesBT.setScaleY(1);                                 //nastavuje meradlo, podla ktoreho sa bude velkost komponentu menit pozdlz osy y
                }
            }
            );

            //tlacidlo yesBT si registruje ovladac(handler), ktorý bude reagovat na udalost - kurzor prejde na tlacidlo
            noBT.setOnMouseEntered(new EventHandler<MouseEvent>()
            {
                //metoda, v ktorej je urcena co sa vykona v pripade zavolania handleru
                @Override
                public void handle(MouseEvent event)
                {
                    Random rand = new Random();
                    //generuje nahodne cisla pri x (v rozsahu sirky GridPane)
                    int x = rand.nextInt((int) (BT_PANE_WIDTH - noBT.getWidth()));
                    //generuje nahodne cisla pri y (v rozsahu sirky GridPane)
                    int y = rand.nextInt((int) (BT_PANE_HIGHT - noBT.getHeight()));
                    noBT.setLayoutX(x);                                 //nastavuje meradlo, podla ktoreho sa bude velkost komponentu menit pozdlz osy x
                    noBT.setLayoutY(y);                                 //nastavuje meradlo, podla ktoreho sa bude velkost komponentu menit pozdlz osy y
                }
            }
            );

            //tlacidlo noBT si zaregistruje ovladac(handler), ktorý bude reagovat na udalost - kliknutie na tlacidlo
            noBT.setOnAction(new EventHandler<ActionEvent>()
            {
                //metoda, v ktroej je urcene, co sa vykona v priapde zavolania handleru
                @Override
                public void handle(ActionEvent event)
                {
                    noBT.setVisible(false);                             //schovane tlacidla
                }
            }
            );

            Scene scene = new Scene(rootPane);

            primaryStage.setScene(scene);
            primaryStage.show();
        } catch (Exception e)
        {
            e.printStackTrace();
        }
    }
 
Odpovedať
16.11.2017 20:07
Robíme čo je v našich silách, aby bola tunajšia diskusia čo najkvalitnejšia. Preto do nej tiež môžu prispievať len registrovaní členovia. Pre zapojenie sa do diskusie sa zaloguj. Ak ešte nemáš účet, zaregistruj sa, je to zadarmo.

Zatiaľ nikto nevložil komentár - buď prvý!