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.
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...
Ahoj, síce to v texte nepíšeš ale predpokladám že podľa metódy noBT.setOnMouseEntered 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();
}
}
Zatiaľ nikto nevložil komentár - buď prvý!