NOVINKA - Online rekvalifikační kurz Python programátor. Oblíbená a studenty ověřená rekvalifikace - nyní i online.
Hledáme nové posily do ITnetwork týmu. Podívej se na volné pozice a přidej se do nejagilnější firmy na trhu - Více informací.

Diskuze – JavaFX 2 quickstart: Události a CSS

Zpět

Upozorňujeme, že diskuze pod našimi online kurzy jsou nemoderované a primárně slouží k získávání zpětné vazby pro budoucí vylepšení kurzů. Pro studenty našich rekvalifikačních kurzů nabízíme možnost přímého kontaktu s lektory a studijním referentem pro osobní konzultace a podporu v rámci jejich studia. Toto je exkluzivní služba, která zajišťuje kvalitní a cílenou pomoc v případě jakýchkoli dotazů nebo projektů.

Komentáře
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?

Odpovědět
7.10.2015 15:35
"nikdy nepiš nic 2x" (updated 10 years after: "Není nic špatného na tom napsat něco 2x")
Avatar
Odpovídá 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...

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

Aha, aha. Díky :-)

Odpovědět
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();
        }
    }
 
Odpovědět
16.11.2017 20:07
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 4 zpráv z 4.