IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

JavaFX Discussion :

JavaFX 2.0 beta disponible


Sujet :

JavaFX

  1. #1
    Rédacteur/Modérateur

    Avatar de bouye
    Homme Profil pro
    Information Technologies Specialist (Scientific Computing)
    Inscrit en
    Août 2005
    Messages
    6 838
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : Nouvelle-Calédonie

    Informations professionnelles :
    Activité : Information Technologies Specialist (Scientific Computing)
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Août 2005
    Messages : 6 838
    Points : 22 846
    Points
    22 846
    Billets dans le blog
    51
    Par défaut JavaFX 2.0 beta disponible
    JavaFX 2.1 early access pour Windows et MacOS
    Mise à jour du 22/12/2011

    La première bêta publique de la version 2.1 est désormais disponible sous Windows et MacOS.

    Téléchargez JavaFX 2.1 b06

    JavaFX 2.0.2 disponible
    Mise à jour du 13/12/2011

    La nouvelle version de JavaFX est désormais disponible. Cette version apporte une révision des droits de distributions et accorde aux utilisateurs une licence dont les termes sont identiques à celle de Java SE. Il est ainsi désormais possible de packager et redistribuer les runtimes JavaFX dans vos applications.

    À compter de cette version, Oracle offre également désormais un support de JavaFX à ses partenaires membres du Oracle Premier Support for Software. Le support gratuit reste toutefois disponible via les forums JavaFX chez Oracle, ainsi que le Jira de JavaFX.

    Parmi les nouveautés annoncées dans cette version on peut noter le support officiel de l’intégration de JavaFX dans SWT.

    Téléchargez JavaFX 2.0.2
    Release notes

    JavaFX 2.0 disponible en version finale
    Sous Windows, et en beta pour Mac OS X

    Mise à jour du 04/10/2011


    C'est ce matin, durant le Keynote technique d'introduction à la JavaOne 2011, que Mark Reinhold et Richard Bair ont dévoilé la publication de la version finale de JavaFX 2.0, ainsi que la mise en disponibilité en avant-première de l'outil de conception graphique SceneBuilder et de la beta de NetBeans 7.1.

    Cette nouvelle version de JavaFX ne tourne pour le moment que sous Windows. JavaFX 2.0 est également disponible en version beta pour Mac OS.

    Richard Bair a indiqué que la version finale pour Mac OS serait disponible lors du lancement de la version finale du JDK7 sur cette plateforme qui est attendue pour avant la fin de cette année.

    Il a également rajouté que les versions de JavaFX pour les autres plateformes (Solaris, Linux) seraient disponibles à une date ultérieure sans donner plus de précisions.


    Téléchargez JavaFX 2.0



    La beta de JavaFX 2.0 est disponible
    Sur Windows et Mac


    Comme le laissaient supposer des rumeurs de plus en plus insistantes, la beta de JavaFX 2.0 est désormais disponible en cette fin de mois de mai.

    Sont disponibles dans cette première bêta version:


    PS : il faut un compte chez Oracle/Sun/le SDN/les forums d'Oracle pour pouvoir accéder aux téléchargements.

    Concernant les autres systèmes d'exploitation:


    Source
    Merci de penser au tag quand une réponse a été apportée à votre question. Aucune réponse ne sera donnée à des messages privés portant sur des questions d'ordre technique. Les forums sont là pour que vous y postiez publiquement vos problèmes.

    suivez mon blog sur Développez.

    Programming today is a race between software engineers striving to build bigger and better idiot-proof programs, and the universe trying to produce bigger and better idiots. So far, the universe is winning. ~ Rich Cook

  2. #2
    Rédacteur/Modérateur

    Avatar de bouye
    Homme Profil pro
    Information Technologies Specialist (Scientific Computing)
    Inscrit en
    Août 2005
    Messages
    6 838
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : Nouvelle-Calédonie

    Informations professionnelles :
    Activité : Information Technologies Specialist (Scientific Computing)
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Août 2005
    Messages : 6 838
    Points : 22 846
    Points
    22 846
    Billets dans le blog
    51
    Par défaut
    La sortie de cette version tombe a pic car notre inscription au JavaFX Partner Program est plutôt dans les choux. En effet notre chef a préféré que nous inscrivions notre organisation plutôt que ce soit moi qui m'inscrive en tant qu'individu mais lors du retour des papiers (ce qui permet entre autre d'avoir un degré d’accès plus élevé au niveau du Partner Program) et NDA d'Oracle, personne dans les services administratifs et chez les managers ne semble vouloir prendre l'initiative d’étudier ces documents et d’évaluer leurs implications légales et de les signer. Bref ça m'avance pas depuis plus de 2 mois déjà.

    Bon, temps de télécharger et tester tout ça maintenant.
    Merci de penser au tag quand une réponse a été apportée à votre question. Aucune réponse ne sera donnée à des messages privés portant sur des questions d'ordre technique. Les forums sont là pour que vous y postiez publiquement vos problèmes.

    suivez mon blog sur Développez.

    Programming today is a race between software engineers striving to build bigger and better idiot-proof programs, and the universe trying to produce bigger and better idiots. So far, the universe is winning. ~ Rich Cook

  3. #3
    Rédacteur/Modérateur

    Avatar de bouye
    Homme Profil pro
    Information Technologies Specialist (Scientific Computing)
    Inscrit en
    Août 2005
    Messages
    6 838
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : Nouvelle-Calédonie

    Informations professionnelles :
    Activité : Information Technologies Specialist (Scientific Computing)
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Août 2005
    Messages : 6 838
    Points : 22 846
    Points
    22 846
    Billets dans le blog
    51
    Par défaut
    Quelques infos supplémentaires :
    • L'installation des runtimes (elles sont aussi fournies dans le SDK) se deroule sans problème.
    • Le SDK contient toute la doc et les exemples (des applets + qq JAr a lancer manuellement dans le répertoire apps).
    • L'installation du plugin dans NetBeans 7 se déroule sans problème :
      • Extraire le plugin dans un répertoire.
      • Dans NetBeans 7, aller dans Tools->Plugins->Downloaded->Add Plugins...
      • Sélectionner tous les fichiers .NMB puis faire open et suivre l'install.
      • Créer un nouveau projet en faisant File->New Project...->Java->JavaFX Application ce qui créer un projet par défaut : une fenêtre dont le contenu est vert et contenu un bouton qui imprime "Hello World!" sur la console quand on clique dessus. Cela permet de voir la structure par défaut d'une scène et comment ajouter un EventHandler<ActionEvent> sur un bouton. Évidement il faut espérer que cela soit simplifie dans Java8 (et JavaFX 3 ?) avec le retour des closures.


    Concernant les exemples:
    • Les Applets. Presque tous les exemples ont fini a un moment ou un autre par me faire planter Firefox lorsque j'appuie sur ALT pour afficher le menu de manière a ouvrir un nouveau fichier HTML. Que ce soit dans IE ou Firefox, parfois quand on revient sur la page de l'applet, celle-ci est vide. J'ai également trouve le chargement assez long dans IE (besoin de streamer les runtimes malgré le fait de les avoir installe sur le système ?).

      Globalement comme pour JavaFX 1.x, la vitesse d'affichage dans le navigateur est exécrable. Il reste cependant possible de les lancer en tant qu'application et alors l'affichage graphique est bien plus fluide (voir plus bas pour arriver a lancer sur un système 64bit).

      Lorsque chacun de ces exemples se lance, on a une version custom de la console Java (dans une fenêtre décorée JavaFX) qui pope. A noter la présence d'une exception des le lancement et ce pour chacun des exemples:
      Nom : JavaFX-1.jpg
Affichages : 708
Taille : 112,3 Ko
      • BrickBreaker : l'exemple du casse brique marche bien mais l'affichage est un peu saccade.
        Nom : JavaFX-5.jpg
Affichages : 1082
Taille : 164,4 Ko
      • ColorfulCircles: cet exemple affiche un ensemble de cercles colores et flous. Il s’exécute hyper lentement et faire ramer toute la machine quand il tourne et il a réussi a me faire planter IE et Firefox tellement il pompe de ressources.
      • DigitalClock : l'horloge fonctionne sans problème majeur (il n'y a pas vraiment d'animation dans cet exemple). A noter que le fond est une simple image.
      • DisplayShelf : accordéon d'image qui saccade par rapport a l’équivalent JavaFX 1.x .
      • KeyStrokeMotion : capture et affichage (et animation) des touches du clavier.
      • PathAnimation : l'exemple des animations le long d'un chemin marche a l'identique de celle de JavaFX 1.x.
    • Les autres qui sont des applications a lancer manuellement. Sur mon ordi, ils PLANTENT a cause du fait que le DLL de Prism fourni est en version 32bit... (et ma machine en 64, de même que le JRE par défaut).
      Code : Sélectionner tout - Visualiser dans une fenêtre à part
      1
      2
      3
      4
      5
      6
      7
      8
      9
      10
      11
      12
      13
      14
      15
      16
      17
      18
      19
      20
      21
      22
      >java -jar SwingJavaFXChart.jar
      *** Fallback to Prism SW pipeline
      java.lang.UnsatisfiedLinkError: C:\Users\fabriceb\Desktop\JavaFX 2.0\javafx-sdk2.0-beta\rt\bin\mat.dll: Can't load IA 32-bit .dll on a AMD 64-bit platform
              at java.lang.ClassLoader$NativeLibrary.load(Native Method)
              at java.lang.ClassLoader.loadLibrary0(Unknown Source)
              at java.lang.ClassLoader.loadLibrary(Unknown Source)
              at java.lang.Runtime.load0(Unknown Source)
              at java.lang.System.load(Unknown Source)
              at com.sun.glass.utils.NativeLibLoader.loadLibraryFullPath(NativeLibLoader.java:146)
              at com.sun.glass.utils.NativeLibLoader.loadLibraryInternal(NativeLibLoader.java:85)
              at com.sun.glass.utils.NativeLibLoader.loadLibrary(NativeLibLoader.java:30)
              at com.sun.glass.ui.Platform$1.run(Platform.java:32)
              at java.security.AccessController.doPrivileged(Native Method)
              at com.sun.glass.ui.Platform.DeterminePlatform(Platform.java:30)
              at com.sun.glass.ui.PlatformFactory.getPlatformFactory(PlatformFactory.java:19)
              at com.sun.glass.ui.Application.Run(Application.java:34)
              at com.sun.javafx.tk.quantum.QuantumToolkit.startup(QuantumToolkit.java:233)
              at com.sun.javafx.application.PlatformImpl.startup(PlatformImpl.java:30)
              at com.sun.javafx.application.LauncherImpl.launchApplication1(LauncherImpl.java:64)
              at com.sun.javafx.application.LauncherImpl.access$000(LauncherImpl.java:16)
              at com.sun.javafx.application.LauncherImpl$1.run(LauncherImpl.java:42)
              at java.lang.Thread.run(Unknown Source)
      Avant de les lancer il convient donc d'installer un JRE 32bits et de changer le PATH:
      Code : Sélectionner tout - Visualiser dans une fenêtre à part
      >PATH="C:\Program Files (x86)\Java\jre6\bin";%PATH%
      C'est clairement quelque chose qu'il leur faudra corriger lorsqu'on en sera a la version finale. C'est deja assez lourdingue pour la plupart des utilisateurs d'arriver a lancer une app Java correctement alors on va pas non-plus leur faire faire joujou avec le PATH pour qu'il puissent la lancer correctement (a quand un installeur unique pour les JRE 32 et 64 bits d'ailleurs ? ). Évidement tout cela serait inutile si JWS était facile d'emploi/transparent a l'usage et marchait correctement (ce qui n'est pas le cas pour les deux hypothèses, mais c'est un autre problème...).
      • ChartSampler : un best off des graphes disponibles dont certains avec animation.
        Nom : JavaFX-3.jpg
Affichages : 905
Taille : 121,2 Ko
        Constat:
        • Les graphes ont subit un léger lifting de leur LnF par rapport a JavaFX 1.x.
        • Quand il y a trop de nœuds dans le graphe, l'animation rame.
        • Quand il atteint une certaine valeur, le graphe scrolle horizontalement pour afficher juste une plage de valeur (avoir dans le code source si c'est l'API ou le programmeur qui le fait).
        • Les exemples d'analyse du spectre audio (AreaChart + animation, BarChart + animation) semble planter grave.
      • Ensemble : une application plutôt jolie qui montre la plupart des effets, nœuds et trucs possibles en JavaFX 2.0 accompagnes de leur code source (un peu comme un mix des démos Java2Demo et SwingSet du JDK). Attention elle est longue a se lancer de même que lorsqu'on revient a l’écran listant tous les exemples.
        Nom : JavaFX-4.jpg
Affichages : 1206
Taille : 181,3 Ko
        PS : les aperçus des effets sont animes.

        Également elle a aussi fini par planter chez moi (pas vu si c’était une OutOfMemoryError ou un truc du genre).
      • PuzzlePieces : le test du puzzle affichant une photo de tigre précédemment disponible en 1.x.
      • SwingJavaFXChart : affiche des graphes JavaFX dans une UI Swing. A noter que lorsqu'on change une valeur dans la (J?)Table, la colonne correspondante dans le graphe s'anime pour afficher la hauteur correspondante.
        Nom : JavaFX-2.jpg
Affichages : 1145
Taille : 53,3 Ko


    Divers autres remarque:
    • La classe javafx.scene.Scene dispose bien d'une methode retournant sa StyleSheet dans une javafx.collections.ObservableList<String> (ObservableList est la version objet/2.0 de sequences de JavaFX 1.x). Apparemment c'est dans cette liste qu'il faut rajouter les stylesheet custom.
    • Certains ont fait remarquer sur le forum d'Oracle que les MenuItems qu'on rajoute dans les menus ne sont plus des nœuds.
    • La documentation de JavaFX utilise desormais le format Javadoc classique (ouf ! ).
    • La documentation laisse apparaitre les packages suivants :
      • com.javafx.preview.control qui contient TextArea comme controle custom.
      • com.microsoft.msaa what ???!
        Citation Envoyé par JavaFXDoc
        Java interface definition of Microsoft Active Accessibility (MSAA). The contents of this package have been copied largely from the Microsoft Active Accessibility (MSAA) specification.
    Merci de penser au tag quand une réponse a été apportée à votre question. Aucune réponse ne sera donnée à des messages privés portant sur des questions d'ordre technique. Les forums sont là pour que vous y postiez publiquement vos problèmes.

    suivez mon blog sur Développez.

    Programming today is a race between software engineers striving to build bigger and better idiot-proof programs, and the universe trying to produce bigger and better idiots. So far, the universe is winning. ~ Rich Cook

  4. #4
    Rédacteur/Modérateur

    Avatar de bouye
    Homme Profil pro
    Information Technologies Specialist (Scientific Computing)
    Inscrit en
    Août 2005
    Messages
    6 838
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : Nouvelle-Calédonie

    Informations professionnelles :
    Activité : Information Technologies Specialist (Scientific Computing)
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Août 2005
    Messages : 6 838
    Points : 22 846
    Points
    22 846
    Billets dans le blog
    51
    Par défaut
    Ajout des images manquantes au 1er post:

    Nom : JavaFX-8.jpg
Affichages : 683
Taille : 37,4 Ko
    L'horloge.

    Nom : JavaFX-6.jpg
Affichages : 996
Taille : 73,7 Ko
    Le fameux test des cercles qui fait ramer la machine même quand exécute en application au lieu d'une Applet.

    Nom : JavaFX-7.jpg
Affichages : 680
Taille : 33,5 Ko
    L'applet de capture du clavier.
    Merci de penser au tag quand une réponse a été apportée à votre question. Aucune réponse ne sera donnée à des messages privés portant sur des questions d'ordre technique. Les forums sont là pour que vous y postiez publiquement vos problèmes.

    suivez mon blog sur Développez.

    Programming today is a race between software engineers striving to build bigger and better idiot-proof programs, and the universe trying to produce bigger and better idiots. So far, the universe is winning. ~ Rich Cook

  5. #5
    Rédacteur/Modérateur

    Avatar de bouye
    Homme Profil pro
    Information Technologies Specialist (Scientific Computing)
    Inscrit en
    Août 2005
    Messages
    6 838
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : Nouvelle-Calédonie

    Informations professionnelles :
    Activité : Information Technologies Specialist (Scientific Computing)
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Août 2005
    Messages : 6 838
    Points : 22 846
    Points
    22 846
    Billets dans le blog
    51
    Par défaut
    A noter que cela tourne nettement plus fluidement chez moi (y compris sur le test des cercles. quelques accrochages lors des chargement des démo du test Ensemble cependant) avec un ordi plus récent, plus de RAM et une carte vidéo plus puissante, même si ce dernier est déjà occupé à d'autres taches.

    Par contre c'est quand même dommage, car JavaFX 1.x tournait plutot bien sur des ordi milieu/bas de gamme tandis que pour le moment mon ordi du boulot semble être mis sur les genoux par certains des tests.
    Merci de penser au tag quand une réponse a été apportée à votre question. Aucune réponse ne sera donnée à des messages privés portant sur des questions d'ordre technique. Les forums sont là pour que vous y postiez publiquement vos problèmes.

    suivez mon blog sur Développez.

    Programming today is a race between software engineers striving to build bigger and better idiot-proof programs, and the universe trying to produce bigger and better idiots. So far, the universe is winning. ~ Rich Cook

  6. #6
    Rédacteur/Modérateur

    Avatar de bouye
    Homme Profil pro
    Information Technologies Specialist (Scientific Computing)
    Inscrit en
    Août 2005
    Messages
    6 838
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : Nouvelle-Calédonie

    Informations professionnelles :
    Activité : Information Technologies Specialist (Scientific Computing)
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Août 2005
    Messages : 6 838
    Points : 22 846
    Points
    22 846
    Billets dans le blog
    51
    Par défaut
    Pour ceux que ca interresse, voici mon 1er jet en JavaFX 2.0, le port d'une animation simple : un rectangle rempli d'un dégradé de rouge dont la largeur varie. L'animation se lance en cliquant sur un bouton situé sous le rectangle tandis que le texte de ce même bouton change suivant que l'animation est lancée ou pas. Cela permet voir quelques petites choses : la création de la scène, le placement des noeuds, l'initialisation du gradient, la déclaration de l'animation et de sa keyframe, ainsi que le binding.

    Ce permier code est la version 1.3.1, donc écrite en JavaFX Script, de ce même programme (il est relativement simple à comprendre même s'il est écrit dans un language différent du Java)

    Code JavaFX Script : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    package test;
     
    import javafx.stage.Stage;
    import javafx.scene.Scene;
    import javafx.scene.control.Button;
    import javafx.scene.shape.Rectangle;
    import javafx.scene.paint.LinearGradient;
    import javafx.scene.paint.Stop;
    import javafx.scene.paint.Color;
    import javafx.animation.Timeline;
    import javafx.animation.Interpolator;
     
    /**
     * @author Fabrice
     */
    def rectangle: Rectangle = Rectangle {
                x: 100
                y: 100
                width: 200
                height: 100
                arcHeight: 10
                arcWidth: 10
                fill: LinearGradient {
                    startX: 0.0
                    startY: 0.0
                    endX: 1.0
                    endY: 0.0
                    stops: [
                        Stop {
                            color: Color.RED
                            offset: 0.0
                        },
                        Stop {
                            color: Color.DARKRED
                            offset: 1.0
                        },
                    ]
                }
            }
    def button: Button = Button {
                layoutX: 250
                layoutY: 250
                action: toggleAnimation
                text: bind if (animation == null) { "Start" } else { "Stop" }
            }
     
    Stage {
        title: "JavaFX 1.3.1 animation + bind test"
        width: 600
        height: 600
        scene: Scene {
            content: [
                rectangle,
                button
            ]
        }
    }
    var animation: Timeline;
     
    function toggleAnimation(): Void {
        if (animation == null) {
            animation = Timeline {
                        autoReverse: true
                        repeatCount: Timeline.INDEFINITE
                        keyFrames: [
                            at (2s) {
                                rectangle.width => 50 tween Interpolator.EASEBOTH
                            }
                        ]
                    }
            animation.playFromStart();
        } else {
            animation.stop();
            animation.time = 0s;
            animation = null;
        }
    }

    Nom : Test1.jpg
Affichages : 647
Taille : 21,0 Ko

    Ce second code est la nouvelle version pour JavaFX 2.0 écrite en Java (Java7 pour être précis, voir la syntaxe des Generics utilisée, facilement modifiable pour faire tourner sur Java 6.).

    Deux aménagements faits par rapport au programme initial :
    • Il m'a fallu initialiser le texte de mon bouton à une valeur par défaut puisque le binding fonctionne différement ici.
    • J'ai inversé la syntaxe d'arrêt de l'animation : mise à 0 puis stop() car sinon si je faisais comme en 1.x, mon rectangle n'était pas remis à son état initial (un bug ? ou moi qui m'y prend mal ?). C'est génant bien sur car dans le cas d'animations rapide, il peut y avoir un déplacement de l'objet animé entre les deux étapes. Si c'est un bug, j'espère qu'il sera rapidement corrigé.

    Bien sur comme c'est mon tout premier code, il est probablement possible de faire mieux et bien sur aussi qu'on pouvait gérer l'état du texte du bouton d'une manière beaucoup plus simple "en Java normal" (avec un membre Timeline animation privé surlequel on fait directement des tests sans passer par des getters et setters) mais le but ici était d'arriver à reproduire le binding de FX 1.x le plus fidèlement possible.

    Code Java : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    package test;
     
    import javafx.animation.Interpolator;
    import javafx.animation.KeyFrame;
    import javafx.animation.KeyValue;
    import javafx.animation.Timeline;
    import javafx.application.Application;
    import javafx.beans.property.ObjectProperty;
    import javafx.beans.value.ChangeListener;
    import javafx.beans.value.ObservableValue;
    import javafx.event.ActionEvent;
    import javafx.event.EventHandler;
    import javafx.scene.Group;
    import javafx.scene.Scene;
    import javafx.scene.control.Button;
    import javafx.scene.paint.Color;
    import javafx.scene.paint.CycleMethod;
    import javafx.scene.paint.LinearGradient;
    import javafx.scene.paint.Stop;
    import javafx.scene.shape.Rectangle;
    import javafx.stage.Stage;
    import javafx.util.Duration;
     
    /**
     *
     * @author Fabrice
     */
    public class Main extends Application {
     
        /**
         * @param args the command line arguments
         */
        public static void main(String... args) {
            Application.launch(Main.class, args);
        }
        private Rectangle rectangle = new Rectangle(100, 100, 200, 100);
        private Button button = new Button("Start");
     
        /**
         * {@inheritDoc}
         */
        @Override
        public void start(Stage primaryStage) {
            Group root = new Group();
            rectangle.setArcHeight(10);
            rectangle.setArcWidth(10);
            rectangle.setFill(new LinearGradient(0, 0, 1, 0, true, CycleMethod.NO_CYCLE, new Stop[]{
                        new Stop(0, Color.RED),
                        new Stop(1, Color.DARKRED)
                    }));
            button.setLayoutX(250);
            button.setLayoutY(250);
            button.setOnAction(new EventHandler<ActionEvent>() {
     
                /**
                 * {@inheritDoc}
                 */
                @Override
                public void handle(ActionEvent event) {
                    toggleAnimation();
                }
            });
            root.getChildren().addAll(rectangle, button);
            Scene scene = new Scene(root);
            primaryStage.setTitle("JavaFX 2.0 animation + bind test");
            primaryStage.setWidth(600);
            primaryStage.setHeight(600);
            primaryStage.setScene(scene);
            primaryStage.setVisible(true);
            animationProperty().addListener(new ChangeListener<Timeline>() {
     
                /**
                 * {@inheritDoc}
                 */
                @Override
                public void changed(ObservableValue<? extends Timeline> observable, Timeline oldValue, Timeline newValue) {
                    button.setText(newValue == null ? "Start" : "Stop");
                }
            });
        }
     
        private void toggleAnimation() {
            if (getAnimation() == null) {
                Timeline animation = new Timeline();
                animation.setAutoReverse(true);
                animation.setCycleCount(Timeline.INDEFINITE);
                final KeyValue<Number> keyValue = new KeyValue<>(rectangle.widthProperty(), 100, Interpolator.EASE_BOTH);
                final KeyFrame keyFrame = new KeyFrame(new Duration(2000), keyValue);
                animation.getKeyFrames().add(keyFrame);
                animation.playFromStart();
                setAnimation(animation);
            } else {
                Timeline animation = getAnimation();
                animation.jumpTo(Duration.ZERO);
                animation.stop();
                setAnimation(null);
            }
        }
        private ObjectProperty<Timeline> animationProp = new ObjectProperty<>();
     
        // Define a getter for the property's value
        public final Timeline getAnimation() {
            return animationProp.get();
        }
     
        // Define a setter for the property's value
        public final void setAnimation(Timeline value) {
            animationProp.set(value);
        }
     
        // Define a getter for the property itself
        public ObjectProperty<Timeline> animationProperty() {
            return animationProp;
        }
    }

    Nom : Test2.jpg
Affichages : 700
Taille : 20,9 Ko

    Evidement dans cette version, la syntaxe est beaucoup plus lourde et plus verbeuse mais en même temps probablement plus compréhensible pour des gens habitués à du Swing ou de l'AWT.
    Merci de penser au tag quand une réponse a été apportée à votre question. Aucune réponse ne sera donnée à des messages privés portant sur des questions d'ordre technique. Les forums sont là pour que vous y postiez publiquement vos problèmes.

    suivez mon blog sur Développez.

    Programming today is a race between software engineers striving to build bigger and better idiot-proof programs, and the universe trying to produce bigger and better idiots. So far, the universe is winning. ~ Rich Cook

  7. #7
    Membre régulier
    Inscrit en
    Avril 2011
    Messages
    56
    Détails du profil
    Informations forums :
    Inscription : Avril 2011
    Messages : 56
    Points : 118
    Points
    118
    Par défaut
    J'aimerais bien voir le nouveau javaFX, en action, y'a pas de demo quelque part ?

  8. #8
    Rédacteur/Modérateur

    Avatar de bouye
    Homme Profil pro
    Information Technologies Specialist (Scientific Computing)
    Inscrit en
    Août 2005
    Messages
    6 838
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : Nouvelle-Calédonie

    Informations professionnelles :
    Activité : Information Technologies Specialist (Scientific Computing)
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Août 2005
    Messages : 6 838
    Points : 22 846
    Points
    22 846
    Billets dans le blog
    51
    Par défaut
    Apparement, pas sur le site pour le moment (ca viendra peut-être dans les jours qui viennent ou sinon lors de la sortie de la version finale vers la fin de l'année) mais les démos sont fournies dans le SDK.
    Merci de penser au tag quand une réponse a été apportée à votre question. Aucune réponse ne sera donnée à des messages privés portant sur des questions d'ordre technique. Les forums sont là pour que vous y postiez publiquement vos problèmes.

    suivez mon blog sur Développez.

    Programming today is a race between software engineers striving to build bigger and better idiot-proof programs, and the universe trying to produce bigger and better idiots. So far, the universe is winning. ~ Rich Cook

  9. #9
    Membre régulier
    Homme Profil pro
    Inscrit en
    Septembre 2006
    Messages
    64
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Septembre 2006
    Messages : 64
    Points : 85
    Points
    85
    Par défaut
    Est-ce qu'on va se retrouver avec un truc à la Silverlight avec 2 ans de retard sur la version Linux et un portage mal foutu ?
    Pour l'instant je vois aucun avantage par rapport à du Flex/AIR... au contraire.

    Je suis également curieux de voir ce qu'ils proposent pour les smartphones

  10. #10
    Membre du Club
    Inscrit en
    Mai 2009
    Messages
    102
    Détails du profil
    Informations forums :
    Inscription : Mai 2009
    Messages : 102
    Points : 50
    Points
    50
    Par défaut Salut!
    Et le plugin pour Eclipse??

  11. #11
    Membre éclairé Avatar de Camille_B
    Homme Profil pro
    Webmaster
    Inscrit en
    Septembre 2006
    Messages
    212
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Webmaster
    Secteur : Associations - ONG

    Informations forums :
    Inscription : Septembre 2006
    Messages : 212
    Points : 673
    Points
    673
    Par défaut
    Après Flash - Air / Sliverlight / Javascript,Canvas,SVG, j'ai l'impression que tout cela arrive bien tardivement...

  12. #12
    Membre actif
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    182
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Avril 2009
    Messages : 182
    Points : 268
    Points
    268
    Par défaut
    Swing Interoperability
    JavaFX 2.0 APIs can be used within a Swing application to provide a smoother transition to JavaFX. JavaFX components, such as WebView, allow developers to extend existing Swing applications and gain experience with the new JavaFX APIs.
    Woah jai presque le gout d`essayer javafx maintenant, jai lu la doc et sa l`air tres facile d`utilisations, je me demande si nous verrons la possibilité dajouter des composants javafx dans une application swing via Matisse.

    Sa inciterai probablement les gens a utiliser javafx davantages.

    edit: Quelqu'un sais quand le beta sort pour linux ?

  13. #13
    Rédacteur/Modérateur

    Avatar de bouye
    Homme Profil pro
    Information Technologies Specialist (Scientific Computing)
    Inscrit en
    Août 2005
    Messages
    6 838
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : Nouvelle-Calédonie

    Informations professionnelles :
    Activité : Information Technologies Specialist (Scientific Computing)
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Août 2005
    Messages : 6 838
    Points : 22 846
    Points
    22 846
    Billets dans le blog
    51
    Par défaut
    ben oui ça a quelques années ans de retard, puisque F3/JavaFX Script était sur le devant de la scène depuis au moins 2006. Une de leurs erreurs initiales était de faire que l'API était uniquement accessible via le language JavaFX Script (qui au départ était simplement prévu pour scripter Swing).

    PS : par rapport à ce que je dis ci-après, souvenez-vous qu'il s'agit d'une version beta et que la version finale est attendue dans 5~6 mois. Les choses peuvent donc changer d'ici-là.

    Coté mobile rien de nouveau depuis la JavaOne ou ils parlaient de "revigorer Java ME" (et la suite dépendra peut-être du procès contre Google). Mais cette version est desktop/serveur only (il n'y a plus de profils). Contrairement à la 1.x, il n'a jamais fait état de JavaFX 2.0 sur les mobiles ou TV, à mon avis, ça viendra peut-être plus tard si ça marche/décolle.

    Coté SVG, justement il n'y a rien (pour le moment et pour ce que j'en ai vu), or on a aussi perdu le support des FXZ/FXD au passage (puisque il n'y a plus le support de JavaFX Script) ce qui est gênant pour le portage des applications FX 1.x). Il n'y a plus de package javafx.fxd, plus de plugins pour Photshop/Illustrator et encore moins de Production Suite (qui faisait la conversion des SVG en FXZ/FXD).
    Il reste bien la classe SVGPath déjà présente en 1.x qui permet de définir un chemin en utilisant la syntaxe SVG mais c'est tout. Il faudra que quelqu'un ponde un convertisseur ou un interpréteur.

    Pas vu le support du HTML5 non plus (suis encore en cours d'exploration).

    Au passage on a perdu aussi le support des flux RSS dans cette version (les sous-packages de javafx.data sont absents).

    Leur autre erreur initiale a été de sortir la 1.0 en la marketant un truc dédié au designers (et là il n'en est guère mention pour la 2.0), sans pour autant sortir les outils graphique/de design appropriés. Ce qui fait la force de Flash et XAML c'est aussi en partie qu'une bonne dose du design peut être créé de manière graphique via un éditeur (notamment les animations qui sont généralement super pénibles à coder à la main) via Photoshop/Illustrator/FlashStudio/VisualStudio/Expression Blend. On les attend au tournant de ce coté-là et une des promesses de la JavaOne était de fournir des outils similaires (sans qu'on sache si ça serait gratuit ou pas). Pour ce que j'en ai vu, le JavaFX Composer (l'équivalent de Matisse pour FX 1.x) est d'ailleurs aux abonnés absents dans NetBeans donc pour le moment il faut coder à la main en attendant de voir ce module réaparaitre.

    Je n'ai pas vu si la classe javafx.embed.swing.JFXPanel apparait dans la palette du designer de NetBeans d'ailleurs. C'est via cette classe qu'on peut intégrer des noeuds JavaFX dans une UI Swing.

    Concernant Eclipse, je n'ai pas trop suivit ce qui s'est dit de ce coté-là au cours des confs post-JavaOne mais pour 1.x ce n'était pas Sun qui s'était chargé du support des plugins mais des projets/société tierces. Peut-être que ceux qui ont fait le plugin 1.x Excadel sont d'ors et dejà en train de plancher sur un plugin 2.0 pour cet IDE.

    Concernant Linux, ça viendra en son temps, ils n'ont donné aucune date et ça fait déjà quelques mois qu'on savait que ça sortira d'abord sous Windows et Mac. Là aussi, ça finira par arriver comme pour la version 1.x ; ici, sans doute quand Prism (la partie native) fonctionnera de manière correcte sous Linux.

    J'ose espérer qu'on aura droit à une distrib des runtimes universelles à packager avec l'application ou du moins un moyen correcte de déployer les JARs+DLL+lib moins foireux que JWS.

    Pour en revenir aux graphismes, à noter également que cette version se contente de porter les fonctionnalités de JavaFX 1.3 avec un support vectoriel 2D complet, et un support préliminaire de la 3D (gestion de la caméra au niveau de la scène et support du placement et des transformations sur l'axe Z) mais toujours sans objets primitives 3D (on a juste Point3D et la possibilité de mettre des formes 2D dans un espace 3D).

    On a pas non-plus de gestion des graphismes bitmap/pixel par pixel, le paint TexturePaint qui devait être rajouté n'est toujours pas présent. . Donc de toute manière, il faudra passer par Java2D (et donc des conversions plus ou moins lourdes des types FX font, paint, etc. en équivalent Java2D/AWT) et dessiner sur des BufferedImage Java2D pour faire ce genre de choses en attendant. L'ennui c'est que je ne sais pas trop comment on peut désormais convertir une BufferedImage Java2D en Image FX (la classe SwingUtils a disparu, peut-être en passant par la méthode non-documentée Image.impl_fromExternalImage()).
    De même, toujours pas de méthode officielle, à ma connaissance, pour convertir une scène ou un nœud en bitmap (utile pour faire des impressions, création de rapport ou exports/sauvegardes d'écrans dans des fichiers) donc l'usage en entreprise s'en trouve toujours limité.
    Merci de penser au tag quand une réponse a été apportée à votre question. Aucune réponse ne sera donnée à des messages privés portant sur des questions d'ordre technique. Les forums sont là pour que vous y postiez publiquement vos problèmes.

    suivez mon blog sur Développez.

    Programming today is a race between software engineers striving to build bigger and better idiot-proof programs, and the universe trying to produce bigger and better idiots. So far, the universe is winning. ~ Rich Cook

  14. #14
    Rédacteur/Modérateur

    Avatar de bouye
    Homme Profil pro
    Information Technologies Specialist (Scientific Computing)
    Inscrit en
    Août 2005
    Messages
    6 838
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : Nouvelle-Calédonie

    Informations professionnelles :
    Activité : Information Technologies Specialist (Scientific Computing)
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Août 2005
    Messages : 6 838
    Points : 22 846
    Points
    22 846
    Billets dans le blog
    51
    Par défaut
    Autre info pour la résolution d'un bug (lié a NetBeans) que j'ai moi-meme expérimenté chez moi et qui revient plusieurs fois sur les forums d'Oracle :

    • assurez-vous que votre NetBeans 7 est a jour. Entre autre dans le cas d'une nouvelle install de NetBeans 7, récupérez d'abord les nouvelles maj des plugins via le menu Tools->Plugins.
    • Redemarrez l'IDE apres les maj.
    • Une fois que tout est a jour, installez le plugin JavaFX.


    Si vous ne faites pas ça vous êtes parti pour avoir NetBeans qui se plaindra de tout un tas de plugins absent et ne fonctionnera plus correctement (en fait il les désactive car il ne peut plus les trouver) ce qui va se finir en réinstallation complète de l'IDE (pour eviter la crise de nerfs).
    Merci de penser au tag quand une réponse a été apportée à votre question. Aucune réponse ne sera donnée à des messages privés portant sur des questions d'ordre technique. Les forums sont là pour que vous y postiez publiquement vos problèmes.

    suivez mon blog sur Développez.

    Programming today is a race between software engineers striving to build bigger and better idiot-proof programs, and the universe trying to produce bigger and better idiots. So far, the universe is winning. ~ Rich Cook

  15. #15
    Membre régulier
    Profil pro
    Inscrit en
    Décembre 2009
    Messages
    53
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2009
    Messages : 53
    Points : 118
    Points
    118
    Par défaut
    Pour moi, cela arrive hélas trop tard et les PB d'Oracle autour de JAVA ne présage rien de bon.
    La VM est trop longue à charger et Silverlight est un concurrent trés sérieux surtout depuis que MS a mis son Visual Studio en téléchargement free.
    Et puis il y a HTML5 ...

  16. #16
    Membre éclairé
    Profil pro
    Inscrit en
    Mars 2010
    Messages
    549
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2010
    Messages : 549
    Points : 704
    Points
    704
    Par défaut
    Citation Envoyé par salve34 Voir le message
    Pour moi, cela arrive hélas trop tard et les PB d'Oracle autour de JAVA ne présage rien de bon.
    La VM est trop longue à charger et Silverlight est un concurrent trés sérieux surtout depuis que MS a mis son Visual Studio en téléchargement free.
    Et puis il y a HTML5 ...


    le cliché à deux balles que les pro ms sortent depuis la sortie de .net....

    silverlight, décole pas vraiment

  17. #17
    Membre régulier
    Profil pro
    Inscrit en
    Décembre 2009
    Messages
    53
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2009
    Messages : 53
    Points : 118
    Points
    118
    Par défaut
    le cliché à deux balles que les pro ms sortent depuis la sortie de .net....
    Désolé mais je ne suis pas pro MS, mais pour avoir essayé les 2 technos, y'a pas photo.

    silverlight, décole pas vraiment
    pas si sûr

  18. #18
    Membre émérite

    Profil pro
    Inscrit en
    Décembre 2003
    Messages
    3 995
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2003
    Messages : 3 995
    Points : 2 528
    Points
    2 528
    Par défaut
    A quand des fonctionnalités multimédias 100% Java ? Franchement, VP6, c'est obsolète !

    du WebM, du H.264, du MP3, du Ogg (je sais, il y a jvorbis), il faudrait qu'on puisse tout lire en Java !

  19. #19
    Membre averti

    Profil pro
    Inscrit en
    Février 2009
    Messages
    284
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2009
    Messages : 284
    Points : 409
    Points
    409
    Par défaut
    Quelques premières remarques:

    -Binding très lourd à utiliser, trop verbeux, donc bof, intérêt finalement limité sans le langage javaFX.
    -Pas de possibilité d'utiliser des composants swing dans javaFX, un peu dommage mais qui se comprend techniquement.
    -Du côté des contrôles pas de grosses surprises, espérons qu'il y ait moins de bugs, mais certains sont étrangement peu réactifs comme le Tree.

    -Bon démarrage à froid.
    -Le WebPane, ça c'est bien + l'API ms
    -Pas encore d'API pour le multitâche mais le stack l'est (EDT+PRISM) et ça c'est une grosse nouveauté quand même.

    Bref pas que du négatif (j'ai encore en travers de la gorge l'abandon de JavaFX script) et le support/doc semble un peu plus sérieux qu'à l'époque de Sun.
    Attendons un GUI builder sous Netbeans à la matisse et là ce sera vraiment une plateforme complète.

    Pour l'instant Wait & See.

  20. #20
    Membre averti

    Profil pro
    Inscrit en
    Février 2009
    Messages
    284
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2009
    Messages : 284
    Points : 409
    Points
    409
    Par défaut
    Sinon existe-t-il plugin maven pour javaFX 2?

    Un détail pour le CSS.
    Le path du fichier du css est le chemin dans les sources du jar comme pour getRessourceAsStream().
    Par contre je n'ai pas testé pour un URL distant, mais file://path ne fonctionne pas.

Discussions similaires

  1. PANORAMIC V 0.9.6 beta disponible
    Par PANORAMIC dans le forum Basic
    Réponses: 14
    Dernier message: 01/07/2016, 15h12
  2. Microsoft Robotics Dev Studio 4 Beta Disponible
    Par RobotMaster dans le forum Robotique
    Réponses: 0
    Dernier message: 22/09/2011, 18h00
  3. Réponses: 32
    Dernier message: 07/06/2010, 13h02
  4. [SP-2010] SharePoint 2010 Beta disponible pour les abonnés MSDN
    Par LefortLudovic dans le forum SharePoint
    Réponses: 1
    Dernier message: 17/11/2009, 10h55
  5. Service Pack 2 Beta (disponible au public)
    Par Prosis dans le forum Windows Vista
    Réponses: 2
    Dernier message: 06/12/2008, 23h44

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo