NOVINKA: Získej 40 hodin praktických dovedností s AI – ZDARMA ke každému akreditovanému kurzu!

Diskuze – Lekce 2 - FXML a první formulářová aplikace v JavaFX

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
pocitac770
Tvůrce
Avatar
Odpovídá na Petr Štechmüller
pocitac770:16.10.2016 13:38

které navazují na normální, protože byl neaktualizován (ale přesto ve většině věcí normálně funkční

 
Odpovědět
16.10.2016 13:38
Avatar
rosatislav
Člen
Avatar
Odpovídá na pocitac770
rosatislav:16.10.2016 17:18

Ok ok, špatně jsem to pochopil, za to se omlouvám... Každopádně když jsem se to pokoušel stáhnout z této stránky, tak se to zhruba v 70% vždy zastavilo a nepodařilo.. (možná je chyba na mé straně).. tak jsem po chvíli hledání narazil na gluon, který je co se týče uživatelského rozhraní dost podobný.

 
Odpovědět
16.10.2016 17:18
Avatar
Atrament
Člen
Avatar
Odpovídá na rosatislav
Atrament:16.10.2016 17:38

Situace se SceneBuilderem se má tak, že se Oracle před časem rozhodl přestat vydávat jeho binárky, pouze poskytuje zdrojáky. Gluon poskytuje binárky sestavené z těchto zdrojáků, takže se dá brát jako oficiální SceneBuilder. Vyjádření Oracle <a href='http://­www.oracle.com/technet­work/java/java­se/downloads/sb2dow­nload-2177776.html'>zde</­a>. Jaké k tomu měl Oracle důvody nevím, předpokládám, že je to v souladu s jejich firemní politikou 'posereme na co sáhneme' :(

 
Odpovědět
16.10.2016 17:38
Avatar
Moss
Člen
Avatar
Moss:24.3.2018 10:40

Ahoj, po kliknuti na tlacidlo mi program hadze toto: Exception in thread "JavaFX Application Thread" java.lang.Run­timeException: java.lang.reflec­t.InvocationTar­getException
controller:

package sample;

import javafx.event.ActionEvent;
import javafx.fxml.FXML;
import javafx.fxml.Initializable;
import javafx.scene.control.Label;

import java.net.URL;
import java.util.ResourceBundle;

public class Controller implements Initializable {

    @FXML
    private Label label1;

    @FXML
    private void buttonAction(ActionEvent event) {
        label1.setText("Klikli ste na mopsla");
    }

     @Override
     public void initialize(URL url, ResourceBundle rb) {

     }
}

main:

package sample;

import javafx.application.Application;
import javafx.fxml.FXMLLoader;
import javafx.scene.Parent;
import javafx.scene.Scene;
import javafx.stage.Stage;

public class Main extends Application {

    @Override
    public void start(Stage primaryStage) throws Exception{
        Parent root = FXMLLoader.load(getClass().getResource("sample.fxml"));
        primaryStage.setTitle("Hello World");
        primaryStage.setScene(new Scene(root, 300, 275));
        primaryStage.show();
    }


    public static void main(String[] args) {
        launch(args);
    }
}

FXML:

<?xml version="1.0" encoding="UTF-8"?>

<?import javafx.scene.control.Button?>
<?import javafx.scene.control.Label?>
<?import javafx.scene.layout.ColumnConstraints?>
<?import javafx.scene.layout.GridPane?>
<?import javafx.scene.layout.Pane?>
<?import javafx.scene.layout.RowConstraints?>


<GridPane alignment="center" hgap="10" vgap="10" xmlns:fx="http://javafx.com/fxml/1" xmlns="http://javafx.com/javafx/9.0.4" fx:controller="sample.Controller">
   <columnConstraints>
      <ColumnConstraints />
   </columnConstraints>
   <rowConstraints>
      <RowConstraints />
   </rowConstraints>
   <children>
      <Pane prefHeight="200.0" prefWidth="200.0">
         <children>
            <Button fx:id="button1" layoutX="71.0" layoutY="73.0" mnemonicParsing="false" text="Button" onAction="#buttonAction"/>
            <Label fx:id="label1" layoutX="67.0" layoutY="116.0" text="I love pugs" />
         </children>
      </Pane>
   </children>
</GridPane>

Dakujem za vsetky odpovede.

 
Odpovědět
24.3.2018 10:40
Avatar
Mango
Tvůrce
Avatar
Odpovídá na Moss
Mango:25.3.2018 12:12

Nemá to být public void? V Controlleru

Odpovědět
25.3.2018 12:12
Nezáleží na věku ale na vědomostech ;D
Avatar
Odpovídá na Mango
Petr Štechmüller:25.3.2018 12:57

Myslíš u této metody:

@FXML
    private void buttonAction(ActionEvent event) {
        label1.setText("Klikli ste na mopsla");
    }

Díky anotaci @FXML to může být private.

Odpovědět
25.3.2018 12:57
Pokud spolu kód a komentář nekorespondují, budou patrně oba chybné
Avatar
Marty
Člen
Avatar
Marty:4.8.2018 4:24

U FX se mi nelíbí to bílé pozadí. Nedá se podobně jako u Swing nastavit "Windows" style, aby to pozadí bylo klasicky světle šedé?

Editováno 4.8.2018 4:26
 
Odpovědět
4.8.2018 4:24
Avatar
Odpovídá na Marty
Petr Štechmüller:4.8.2018 8:25

Ahoj, když se Ti nelíbí bílá, tak si barvu změn pomocí CSS

Odpovědět
4.8.2018 8:25
Pokud spolu kód a komentář nekorespondují, budou patrně oba chybné
Avatar
Marty
Člen
Avatar
Odpovídá na Petr Štechmüller
Marty:4.8.2018 22:47

A jo, díky. Hned se na to líp dívá. :)

 
Odpovědět
4.8.2018 22:47
Avatar
MiroslavP
Člen
Avatar
MiroslavP:11.10.2018 21:23

Velmi názorné, poutavé vysvětlení. Děkuji

 
Odpovědět
11.10.2018 21:23
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 10 zpráv z 70.