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 :

La version 1.2 de JavaFX est disponible et arrive sur Linux et OpenSolaris [News]


Sujet :

JavaFX

  1. #21
    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 522
    Points
    2 522
    Par défaut
    Ils ont supprimé l'héritage multiple dans la version 1.2 ? C'est un peu plus qu'une petite modification de syntaxe. C'est extrêmement structurant. Pour ceux qui ont écrit du code qui l'utilisait, ça veut dire reprendre une bonne partie de leur travail, carrément au niveau conception. Ca va mal finir, cette histoire...

  2. #22
    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 522
    Points
    2 522
    Par défaut
    Euh... d'ici une quinzaine de jours, d'après Amazon, c'est 4 livres sur JavaFX qui doivent sortir, et ils sont prévus depuis un moment. En gros, grâce à la version 1.2, ils sont obsolètes avant même d'être en librairie, quoi...

    http://www.amazon.com/Pro-JavaFX-tra...4025061&sr=8-2
    http://www.amazon.com/JavaFX-Action-...4025061&sr=8-3
    http://www.amazon.com/JavaFX-Develop...4025061&sr=8-5
    http://www.amazon.com/Essential-Java...4025061&sr=8-7

  3. #23
    Rédacteur/Modérateur

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

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

    Informations forums :
    Inscription : Août 2005
    Messages : 6 875
    Points : 22 942
    Points
    22 942
    Billets dans le blog
    53
    Par défaut
    Pour le moment le peu d'héritage multiple que j'avais (cause habitué à Java) s'est aisément résolu en mettant les mot-clé mixin là ou il fallait. Par contre comme ca se place sur la classe-mère... chai pas trop comment on peut décider qu'une classe mérite un mixin plus qu'une autre...

  4. #24
    Rédacteur/Modérateur

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

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

    Informations forums :
    Inscription : Août 2005
    Messages : 6 875
    Points : 22 942
    Points
    22 942
    Billets dans le blog
    53
    Par défaut
    Effectivement tant le FXBuilder que le JavaStore ont l'air interressant. Etonant aussi qu'Oracle veuille se lancer dans le business des mobiles/appareils embarqués.

    Par contre le coup de frayeur, c'est Intel qui veut dominer le monde... vivement que la CEE mette son nez dedans !!!

  5. #25
    Rédacteur/Modérateur

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

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

    Informations forums :
    Inscription : Août 2005
    Messages : 6 875
    Points : 22 942
    Points
    22 942
    Billets dans le blog
    53
    Par défaut
    Quelques tests plus tard :

    - les nouveaux layouts peuvent parfois se comporter un peu bizarrement : un Stack contenant un rectangle dont la largeur varie en fonction de la largeur de la scene sera de taille variable si mis dans une VBox mais de taille fixe si mis dans un Group (il faut alors binder le champs width du Stack avec le champs width de la scene).

    - le positionnement relatif des objets dans les layout est malheureusement fait avec un int ou un float, donc parfois on a quelques pixels de decallage (nottament lors des centrages) a cause du manque de precision des calculs (mais bon c'est pour que ce soit plus rapide et mange moins de memoire, nottament sur les mobiles). Donc parfois (et contrairement a ce que disent les didaticiels 1.2), mieux faut faire un centrage maison a l'ancienne avec translateX et translateY pour avoir un afficher correct plutot que de se reposer sur le layout.

    - il y a eut des changements quant au mode fullscreen : precedement quand une application fullscreen perdait le focus (ex: un dialogue quelconque non-lie a l'application pop), elle etait minimisee ; puis elle etait restauree en plein ecran quand on lui redonnait le focus. Desormais elle retrouve ses decorations et reprend sa taille initiale et on ne peut pas la remettre en plein ecran (sauf si on programme la gestion du focus ou si on met un bouton pour bien sur), ce qui peut etre plutot genant si on fait des diaporamas a la Powerpoint, si on joue de la video en plein ecran ou si on a fait une GUI sensee toujours accaparer la totalite de la surface de l'ecran.

    - j'ai parfois des performances execrable des que j'utilise des gradients de trop grande taille. Dans mon test la barre titre custom de mon app se retire/coulisse vers le haut des que l'app est passee en plein ecran (apres tests, ca le fait aussi en fenetree). Si le panneau central de l'application utilise une couleur unie, pas de probleme ; si c'est un gradient... ca saccade et c'est tres lent (je ne me souviens pas avoir eut des ralentissements similaires precedement). Note : JavaFX 1.2 sur JDK 1.6.0_14

  6. #26
    Expert éminent sénior


    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    7 856
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 7 856
    Points : 34 380
    Points
    34 380
    Par défaut
    Salut,

    Quelqu'un a essayé la nouvelle version du Plugin Eclipse réalisé par Neil Bartlett ?

    http://javafx.com/docs/gettingstarted/eclipse-plugin/

  7. #27
    Rédacteur/Modérateur

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

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

    Informations forums :
    Inscription : Août 2005
    Messages : 6 875
    Points : 22 942
    Points
    22 942
    Billets dans le blog
    53
    Par défaut
    non

  8. #28
    Rédacteur/Modérateur

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

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

    Informations forums :
    Inscription : Août 2005
    Messages : 6 875
    Points : 22 942
    Points
    22 942
    Billets dans le blog
    53
    Par défaut
    Concernant la Production Suite, au moins 1 défaut connu de la version 1.1.1 n'est toujours pas corrigé : les gradients circulaires transformés ne sont pas correctement convertis lors du passage SVG -> FXD.

    Il semble toujours y avoir des problèmes lors de l'usage de texte, ceci ne sont pas forcément transformés. Donc comme précédement dans Inkscape je converti mes textes en forme avant le passage au convertisseur de la Production Suite (pis comme les polices utilisées ne sont pas forcément présentes partout, et qu'il ne s'agit pas de texte internationalisable, c'est probablement mieux ainsi).

    Précédement j'avais le code (gauge est le noeud racine UI généré à partir du FXZ, drinkButton est une des entités nommées dans le SVG) :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    var autodrink = bind gauge.drinkButton.visible with inverse;
    Et NetBeans m'a demandé de le remplacer par ça :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    def drinkButton = gauge.drinkButton;
    var autodrink = bind drinkButton.visible with inverse;
    En fait NetBeans me disait d'écrire carrément def autodrink mais j'ai comme un doute là

  9. #29
    Rédacteur/Modérateur

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

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

    Informations forums :
    Inscription : Août 2005
    Messages : 6 875
    Points : 22 942
    Points
    22 942
    Billets dans le blog
    53
    Par défaut
    Dans la catégorie "ça sent la sortie à la va-vite avant la JavaOne" , les nomminés sont : "impossible de spécifier la couleur du texte des nouveaux composants" même en utilisant une feuille de style et également "ma Slider a toujours une grande taille malgré le fait que je lui ai dit de ne faire que 30 pixels de long".

    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
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
     
    def autoDrinkCheckBox = CheckBox{
        font: Font.font("Trebucher MS", FontWeight.BOLD, 10);
        text: ##"Auto drink at 2m";
        // Y a pas!
        //textFill: Color.WHITE;
    }
    // Marche pas et la propriété foreground n'est pas supportée.
    // textFill n'a aucun effet.
    // fill change le font de la case à cocher.
    autoDrinkCheckBox.style="textFill: #FFFFFF; foreground: #FFFFFF;";
    def volumeLabel = Label {
        font: Font.font("Trebucher MS", FontWeight.BOLD, 10);
        textFill: Color.WHITE;
        text: ##"Volume";
    }
    def volumeSlider = Slider {
       min:0, max: 2.0;
       value: bind player.volume with inverse;
       width: 30;
    }
    def panel = Panel {
       content: Stack {
           nodeVPos: VPos.CENTER;
           content : [
               background,
               VBox {
                   spacing: 3;
                   vpos: VPos.CENTER;
                   nodeHPos: HPos.CENTER;
                   content: [
                        autoDrinkCheckBox,
                        HBox {
                            spacing: 3;
                            content: [volumeLabel, volumeSlider]
                        }
                   ]
               }
           ]
       }
       translateX: shadow.localToScene(shadow.boundsInLocal).minX;
       translateY: shadow.localToScene(shadow.boundsInLocal).minY;
    }
    Nom : Image2.png
Affichages : 83
Taille : 37,7 Ko

  10. #30
    Rédacteur/Modérateur

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

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

    Informations forums :
    Inscription : Août 2005
    Messages : 6 875
    Points : 22 942
    Points
    22 942
    Billets dans le blog
    53
    Par défaut
    Parmis les trucs qui déconnent dans cette release également : le drag de fenêtre. Ainsi si je clique et tire la fenêtre de mon application d'un bord à l'autre de l'écran, celle-ci va se mettre à vaciller, apparaitre de ci-delà sur l'écran et si je relache suffisament vite la souris, je peux même arriver à mettre la fenêtre carrement intégralement hors de la surface affichable (alors que j'ai relaché ma souris dans la surface affichable).

    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
     
    def stage2:Stage = Stage {
        title: ##"Fire Water 2";
        style: StageStyle.TRANSPARENT;
        scene: Scene {
            fill: Color.TRANSPARENT;
            content: Group {
                content: [panel, interface2UI];
                /**
                * Makes the entire group draggable.
                */
                onMouseDragged: function( e: MouseEvent ):Void {
                    FX.deferAction(function():Void {
                        stage2.x += e.dragX;
                        stage2.y += e.dragY;
                    });
               }
            }
        }
    }
    En formant un projet plus simple (un unique Rectangle dans la scene, le tout dans une fenêtre décorée), un code similaire fonctionne très bien avec la 1.1.1+1.6.0_14 ; MAIS a ce comportement bizarre dans la 1.2+1.6.0_14 (Note : le deferAction() ici est une tentative de résoudre le problème).

    J'avoue ne pas trop savoir où est le problème d'autant plus que Sergey Malenkov fait pareil dans sa classe application (https://malenkov.dev.java.net/20090602/Application.fx) et que son application de test des nouveaux composants (http://weblogs.java.net/blog/malenko...rols_in_j.html) n'a pas le comportement hérratique de la mienne.

    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
    23
    24
    25
    26
    27
    28
     
    [...]
            Rectangle {
              cursor: Cursor.MOVE
              blocksMouse: true
              visible: bind show and (not applet or draggable)
     
              x: bind border
              y: bind border
              width: bind width
              height: bind offset
              arcWidth: bind round
              arcHeight: bind round
              fill: bind foreground
              opacity: 0.1
     
              onMouseEntered: function(event) {
                hover = true
              }
              onMouseExited: function(event) {
                hover = false
              }
              onMouseDragged: function(event) {
                stage.x += event.dragX;
                stage.y += event.dragY;
              }
            }
    [...]
    PS : à noter qu'une fois l'animation du chrono lancée, la fenêtre a tendace à se comporter normalement.

  11. #31
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    32
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations forums :
    Inscription : Avril 2009
    Messages : 32
    Points : 29
    Points
    29
    Par défaut
    Citation Envoyé par bouye Voir le message
    - j'ai parfois des performances execrable des que j'utilise des gradients de trop grande taille. Dans mon test la barre titre custom de mon app se retire/coulisse vers le haut des que l'app est passee en plein ecran (apres tests, ca le fait aussi en fenetree). Si le panneau central de l'application utilise une couleur unie, pas de probleme ; si c'est un gradient... ca saccade et c'est tres lent (je ne me souviens pas avoir eut des ralentissements similaires precedement). Note : JavaFX 1.2 sur JDK 1.6.0_14
    J'ai eu le même problème, que j'ai résolu en mettant la propriété "cache" à true au niveau du composant qui contient le gradient. De base, la valeur est à false alors JavaFX redessine tout le gradient en continue... A true, il convertit en bitmap et basta.

    Sinon, moi aussi mon drag&drop déconne un peu, et j'ai aussi des problèmes de précision lors de gros zooms. Certains composants se retrouvent pas à la bonne place alors que ce n'était pas le cas avec la 1.1.1.

    Citation Envoyé par bouye Voir le message
    Dans la catégorie "ça sent la sortie à la va-vite avant la JavaOne" , les nomminés sont : "impossible de spécifier la couleur du texte des nouveaux composants" même en utilisant une feuille de style et également "ma Slider a toujours une grande taille malgré le fait que je lui ai dit de ne faire que 30 pixels de long".
    Et oui, moi aussi j'ai un peu halluciné (en plus du manque de la combobox). Pour l'instant, je m'en sors en enlevant le texte de la checkbox et en lui groupant (HBox) un composant Text que je customise. J'ai aussi des problèmes de dimension sur les boutons. Ils ont une taille qui varie suivant la taille de la police utilisée pour le texte interne. Width et Height n'ont aucun effet... J'utilisais des petits icons pour des boutons de type "fermer" ou "recentrer", même combat, maintenant ça fait un gros bloc gris avec le petit icon dedans... impossible de réduire la taille du bouton aux dimensions de l'image.

  12. #32
    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
    J'attends aussi avec impatience un article de Amy Fowler sur les layouts, apparemment il faut utiliser layoutinfo mais ya des trucs zarbs

  13. #33
    Rédacteur/Modérateur

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

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

    Informations forums :
    Inscription : Août 2005
    Messages : 6 875
    Points : 22 942
    Points
    22 942
    Billets dans le blog
    53
    Par défaut
    Yep, j'attends egalement cela avec impatience.

    Sinon, non cache ne change rien pour moi au niveau perfs, pire suivant ou la valeur est positionnee (j'ai essaye plusieurs combinaisons), j'ai des erreurs dans le rendu.

  14. #34
    Rédacteur/Modérateur

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

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

    Informations forums :
    Inscription : Août 2005
    Messages : 6 875
    Points : 22 942
    Points
    22 942
    Billets dans le blog
    53
    Par défaut
    Parmis les changements on peut noter le fait que les composants Swing ont le LnF systeme par defaut et que ce n'est pas top : autant Nimbus se mariait bien avec JFX autant le LnF Windows ce n'est pas trop ca (sans compter que des composants non-opaques dans Nimbus comme la JSlider deviennent opaques en LnF windows). J'imagine que ce changement fait suite au sondage recent sur un blog d'un dev Swing qui demandait quel LnF appliquer par defaut a Swing dans Java 7 (et comme la grosse majorite j'ai repondu : le LnF du systeme... vi mais voila autant c'est glop pour Swing autant ca l'est moins dans JFX ).

    Bon bref une raison de plus d'essayer de se rabattre sur les nouveaux composants natifs. Mais bon... mes divers tentatives d'amadouer la Slider menent toujours a la meme chose : elle reste de taille fixe...

    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
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
        /**
        * Slider node.
        */
        def transparencySlider = Slider {
            min: MIN_SLIDER_VALUE;
            max: MAX_SLIDER_VALUE;
            //width: 75;
            layoutInfo: LayoutInfo {
                vpos: VPos.CENTER;
                minWidth: 75;
                maxWidth: 75;
            }
        }
     
    [...]
     
            def controlGroup:HBox = HBox {
                spacing: 7;
                vpos: VPos.CENTER;
                content: [visibleIcon, separator, transparencySlider ]
            }
            def backgroundShape:Rectangle = Rectangle {
                width: controlGroup.boundsInLocal.width + 2*7;
                height: controlGroup.boundsInLocal.height + 2*7;
                arcWidth: bind backgroundShape.height;
                arcHeight: bind backgroundShape.height;
                fill: bind fill;
                stroke: bind stroke;
            }
            return Stack {
                content: [backgroundShape, controlGroup]
            };
    Nom : test.jpg
Affichages : 92
Taille : 102,4 Ko

    Sinon je pense limiter l'usage de Stack au strict minimum vital (centrer des composants l'un sur l'autre) pour le moment... j'ai des problemes de rendu parfois des que j'en utilise. Par contre Flow, ClipView et des versions plus controlees de HBox et VBox, la pas de probleme...

  15. #35
    Rédacteur/Modérateur

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

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

    Informations forums :
    Inscription : Août 2005
    Messages : 6 875
    Points : 22 942
    Points
    22 942
    Billets dans le blog
    53
    Par défaut
    PS : a noter que si on force Swing a utiliser Nimbus, on a le Nimbus aux coins carres de Swing quand on est en pur Java et non-pas le nimbus customise pour JavaFX avec des coins arrondis qu'on avait dans les versions precedentes:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    import javax.swing.UIManager;
     
    try {
         UIManager.setLookAndFeel(UIManager.getCrossPlatformLookAndFeelClassName());
     }
     catch (e:Exception) {
     }

  16. #36
    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
    essaye avec ca chez moi ca marche
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    UIManager.setLookAndFeel("com.sun.java.swing.plaf.nimbus.NimbusLookAndFeel");
    Sinon j'ai un soucis avec la ListView dont la barre de défilement ne veut pas se remettre en haut quand on fait un select(0) ou un firstRow()

    une idée?

  17. #37
    Rédacteur/Modérateur

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

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

    Informations forums :
    Inscription : Août 2005
    Messages : 6 875
    Points : 22 942
    Points
    22 942
    Billets dans le blog
    53
    Par défaut
    Suis-je bete... c'etait Metal/Ocean et non-pas Nimbus

    Sinon pour le slider :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
        def transparencySlider = Slider {
            min: MIN_SLIDER_VALUE;
            max: MAX_SLIDER_VALUE;
            layoutInfo: LayoutInfo {
                vpos: VPos.CENTER;
                width: 75;
            }
        }
    Apparement la ListView ne me semble pas pleinement fonctionnelle... on a pas de retour de changement d'index ni de retour visuel SAUF si on a clique dessus avant le debut de la transition. Je crois que tu es bon pour aller ecrire un bug report ou un request for enhancement.

    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
    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
     
    /*
     * Main.fx
     *
     * Created on Jun 12, 2009, 8:34:50 AM
     */
     
    package listview;
     
    import javafx.stage.Stage;
    import javafx.scene.Scene;
     
    import javafx.scene.control.ListView;
     
    import javafx.animation.transition.SequentialTransition;
     
    import javafx.animation.transition.PauseTransition;
     
    /**
     * @author fabriceb
     */
    def list:ListView = ListView {
        width: bind list.scene.width;
        height: bind list.scene.height;
        items: [ ##"Zero", ##"One", ##"Two", ##"Three", ##"Four", ##"Five", ##"Six",
        ##"Seven", ##"Height", ##"Nine", ##"Ten"]
    }
    def index = bind list.selectedIndex on replace {
        println("Index changed {list.selectedIndex}");
    }
    def value = bind list.selectedItem on replace {
        println("Value changed {list.selectedItem}");
    }
    Stage {
        title: ##"ListView test"
        width: 250
        height: 150
        scene: Scene {
            content: list
        }
    }
    println("Selecting last row");
    list.selectFirstRow();
    println("{list.selectedIndex} {list.selectedItem}");
    def anim = SequentialTransition {
        content: [
            PauseTransition {
               duration: 2s;
               action: function():Void {
                   println("Selecting last row");
                   list.selectLastRow();
                   println("{list.selectedIndex} {list.selectedItem}");
               }
            }
            PauseTransition {
               duration: 2s;
               action: function():Void {
                   println("Selecting first row");
                   list.selectFirstRow();
                   println("{list.selectedIndex} {list.selectedItem}");
               }
            }
        ]
    }
    anim.playFromStart();
    Autre bug dans ce test : quand je selectionne le premier element a la souris et que je descend avec le clavier jusqu'au dernier la scroll bar fini par disparaitre. Si on remonte (toujours au clavier), elle ne reapparait que lorsqu'on depasse l'element "Five".

    Egalement une fois (et une seule fois) lors d'un lancement je me suis retrouve avec des cases selectionnees en bleu uni plutot que le gradient cyan-bleu normal...

    Dans le meme hier j'ai integrer une ScrollBar dans mon code et elle semble se montrer incapable d'intercepter les mouvements de la roulette...
    Cela se voit egalement dans l'exemple : si on scrolle avec la roulette sur la liste, elle defile, si on scrolle sur la barre rien ne se passe. Implementer la closure de gestion de la roulette sur la barre n'y change rien.

  18. #38
    Rédacteur/Modérateur

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

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

    Informations forums :
    Inscription : Août 2005
    Messages : 6 875
    Points : 22 942
    Points
    22 942
    Billets dans le blog
    53
    Par défaut
    Mouai....
    Apres quelques semaines, mon avis perso est que les controles & layout ne sont pas vraiment au points :

    - pour des raisons que je ne comprend pas il m'arrive souvent que le noeud n'acquiert sa taille definitive qu'APRES son affichage et comme le layout ne se remet pas a jour malgre le binding, j'ai des noeuds qui ne sont pas alignes ou bizarement alignes (dans un Stack ou tout devrait etre centre, l'une des HBox est complement decallee a droite par exemple) ou carrement coupe si on a voulu jouer un peu avec le clip...

    -cote composant, c'est bug sur bug ou trucs pas implementes : la Slider ne supporte pas bien les valeurs negatives (essayez de bouger le bouton des sliders 2 & 3 dans l'exemple), s'affiche de maniere pourrage et se comporte mal des qu'elle est integree dans un CustomNode (bougez un peu le bouton de la slider 1 tout a gauche aussi pour voir... le track va se decaller...) ou a 80% de son API pas implementee...

    Nom : test.jpg
Affichages : 80
Taille : 10,3 Ko

    Test.fx
    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
     
    package slider;
     
    import javafx.scene.CustomNode;
    import javafx.scene.Node;
     
    import javafx.scene.control.Slider;
     
    /**
     * @author fabriceb
     */
     
    public class Test extends CustomNode {
     
        public override function create(): Node {
            return Slider{
            }
        }
    }
    Main.fx
    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
    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
     
    package slider;
     
    import javafx.stage.Stage;
    import javafx.scene.Scene;
     
    import javafx.scene.layout.VBox;
     
    import javafx.scene.control.Slider;
     
    /**
     * @author fabriceb
     */
     
    Stage {
        title: "Application title"
        scene: Scene {
            content: [
                VBox {
                    content: [
                        Test {
     
                        }
                        Slider {
                            value: 0;
                            min: -180.0;
                            max: 180.0;
                        }
                        Slider {
                            value: 0;
                            min: -90.0;
                            max: 90.0;
                        }
                        Slider {
                            value:0;
                            min: 0.0;
                            max: 180.0;
                        }
                        Slider {
                            value:0;
                            min: 0.0;
                            max: 90.0;
                        }
                        Slider {
                            value:0;
                            min: 0.0;
                            max: 180.0;
                        }
                        Slider {
                            labelFormatter: function(f:Float):String {
                                return "{f}";
                            }
                            showTickMarks: true;
                            showTickLabels: true;
                            majorTickUnit:  10;
                            minorTickCount: 5;
                            value:0;
                            min: 0.0;
                            max: 10.0;
                        }
                        Slider {
                            labelFormatter: function(f:Float):String {
                                return "{f}";
                            }
                            showTickMarks: true;
                            showTickLabels: true;
                            majorTickUnit:  10;
                            minorTickCount: 5;
                            value:0;
                            min: 0.0;
                            max: 10.0;
                            vertical: true;
                        }
                    ]
                }
            ]
        }
    }

  19. #39
    Membre émérite
    Avatar de gifffftane
    Profil pro
    Inscrit en
    Février 2007
    Messages
    2 354
    Détails du profil
    Informations personnelles :
    Localisation : France, Loire (Rhône Alpes)

    Informations forums :
    Inscription : Février 2007
    Messages : 2 354
    Points : 2 582
    Points
    2 582
    Par défaut
    D'un autre coté, les choses avancent (lentement) dans le bon sens ; outre le support de Linux, voici maintenant... Amy Fowler on Using JavaFX with Swing. Sun semble ENFIN se préoccuper de la compatibilité FX / Swing, autrement que par le biais de hackers fous !

    Ce que je me demande, moi qui suit un programmeur swing, c'est si on peut mettre JavaFX dans une livraison sous la forme de jars, en supposant que Java SE soit déjà installé, s'il n'y a pas des problèmes de licences, car je crois avoir compris que la licence était encore plus complexe que l'usage ? Y a-t-il un dépot maven ?

    Si cela continue d'avancer aussi bien, dans 1 an il sera temps de se mettre à JavaFX, soyons optimistes.

  20. #40
    Rédacteur/Modérateur

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

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

    Informations forums :
    Inscription : Août 2005
    Messages : 6 875
    Points : 22 942
    Points
    22 942
    Billets dans le blog
    53
    Par défaut
    Pour le moment les seuls moyens de redistribuer JavaFX serait d'installer le package du JDK dispo chez Sun qui le contient (donc exit le support du Mac), en espérant qu'il a été mis à jour pour le JDK 1.6.0_14 et JavaFX 1.2 (la release initiale contenait le JDK 1.6.0_13 et JavaFX 1.1.1).

    Pour le reste, et pour le moment, c'est téléchargement lors du lancement Java Web Start ou téléchargement par le JRE lors du lancement de l'applet.

    Utiliser les binaires du SDK pour les redistribuer ce n'est pas bon : d'une part la licence l'interdit mais en plus il ne contient que les lib natives du système surlequel il tourne.

    Le problème de l'article d'Amy c'est qu'il ne présente rien de nouveau : tout ce qu'il indique (à part les layouts) on pouvait déjà le faire dans la version 1.0 de JavaFX. Et si elle part bien d'utiliser JavaFX pour pimenter une application Java (hum c'est bien vague ça une application Java), elle se perd rapidement en route pour retomber sur la seule chose qu'on puisse faire aujourd'hui : mettre du Swing dans une GUI JavaFX (donc en gros, ton programme Swing existant tu l'oublies et tu recodes toute ton interface en JavaFX en intégrants tes sous-composants/modules Swing existants).


    The complaint can be explained in part by the difficulty with which JavaFX could be used to enhance existing Swing applications. While adding JavaFX to a Swing application is still difficult, [...] Swing components from within JavaFX.

    [...]

    Once a Swing component is embedded in a JavaFX application, [...]

Discussions similaires

  1. Réponses: 28
    Dernier message: 02/08/2012, 12h30
  2. Byatis, la version 1.8 d'Ogre est disponible
    Par LittleWhite dans le forum Ogre
    Réponses: 1
    Dernier message: 07/06/2012, 15h16
  3. La version V8.5 de LEONARDI est disponible
    Par Hinault Romaric dans le forum W4 Express
    Réponses: 2
    Dernier message: 27/07/2011, 14h30
  4. Kernel Linux : la version stable 2.6.38 est disponible
    Par Hinault Romaric dans le forum Linux
    Réponses: 0
    Dernier message: 16/03/2011, 14h10
  5. Linux : la version finale de Gentoo 2010 est disponible
    Par Katleen Erna dans le forum Actualités
    Réponses: 1
    Dernier message: 06/10/2009, 10h13

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