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 :

Résumé des bugs en attendant JavaFX 1.2.1


Sujet :

JavaFX

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre expérimenté

    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
    Par défaut Résumé des bugs en attendant JavaFX 1.2.1
    Voila je propose cette nouvelle discussion comme pot pourri des différents bugs que tout le monde a rencontré dans la 1.2, de plus si vous avez trouvé le moyen de le contourner n'hésitez pas! (je sens que Bouye vas se lâcher sur les layouts )

  2. #2
    Membre éclairé
    Profil pro
    Inscrit en
    Août 2009
    Messages
    64
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2009
    Messages : 64
    Par défaut
    Voyons, il reste à ce jour 336 bugs encore ouverts pour SoMa, contre, uh... 68 bugs résolus (plus 7 pour la 1.2.1) ?
    La 1.3 n'est pas encore sortie !
    Bon, si on se limite aux bugs bloquants, critiques ou majeurs, il n'y en a plus "que" 268...
    Et ce n'est que le runtime, le compilateur est pas mal aussi... :-)

    Bah, gros projet = beaucoup de bugs, c'est normal. Espérons qu'il reste assez de programmeurs sur le projet pour le faire avancer rapidement...

    Côté bugs rencontrés, il y en a pas mal, particulièrement sur les composants, sortis un peu précipitamment (mais on est content de les avoir quand même...) pour JavaONE.

    Comme le slider qui n'a pas de ticks, qui se comporte bizarrement si on met min à autre chose que zéro... Les graphes qui ne sont pas dynamiques. Les composants qui ne sont que partiellement modifiables par CSS. Le CSS qui ne fonctionne que sur les composants déclarés, pas ceux ajoutés après coup.
    J'ai ouvert un bug sur les mixins qui ne sont pas cohérents.
    Il y en a un autre sur le parsing de Json, qui ne gère pas les Long (style timestamp).
    J'ai aussi un bug sur ShapeSubstract qui ne suit pas le binding.
    Ah, oui, et le boundsInParent qui devient énorme sur une forme ayant subi une rotation et un effet (DropShadow).
    Bon, j'en oublie sans doute, mais cela va devenir fastidieux... ;-P

  3. #3
    Rédacteur/Modérateur

    Avatar de bouye
    Homme Profil pro
    Information Technologies Specialist (Scientific Computing)
    Inscrit en
    Août 2005
    Messages
    6 900
    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 900
    Billets dans le blog
    54
    Par défaut
    Citation Envoyé par galien Voir le message
    je sens que Bouye vas se lâcher sur les layouts ;
    Ca serait mal, oh vi ca serait mal

    Personnellement j'ai surtout des layoutBounds ou boundsInParent incoherent des que j'utilise de composants texte (Text et Label) avec HBox, VBox et Flow et mais moins souvent avec Stack ce qui fait que j'ai souvent des noeud ou des controles qui se retrouvent avec des origines negatives ou qui se chevauchent ou qui ont au contraire beaucoup trop d'espacement entre eux (donc une des boites englobantes deraille mais pourtant je n'applique pas de rotation dessus).

    La bordure de focus de TextBox modifie la boite englobante du composant ce qui fait bien sur que cela modifie la mise en page des boites de dialogues quand le composant recoit ou perd le focus.

    Le knob du Slider modifie aussi la boite englobante du composant dans certaines layouts. Le composant n'est pas capable d'indiquer qu'il a le focus.

    Certaines noeud n'ont pas la bonne boite englobante quand je les colle dans des layout qui contiennent aussi des ScrollBar.

    Certains problemes de layout n'apparaissent uniquement que quand on a des layouts dans d'autres layouts (il y a donc un probleme ou une incoherence au niveau des caculs des origines ou des transformations d'un espace a un autre).

    Les gradients deraillent dans un ClipView ou parfois quand on fait un translate sur un ensemble de noeud qui en contient. Il faut donc les cacher.

    Ps : tiens le bug abscence de TexturePaint n'est toujours pas resolu ? Etrange j'ai recupere et modifie une implementation sur les forums de Sun qui fonctionne plutot bien.
    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
    Membre expérimenté

    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
    Par défaut
    @bouye, pour les textbox, dans une box je detecte pas les problème de layout... que j'avais remarqué au début, strange dites vous?

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    32
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Avril 2009
    Messages : 32
    Par défaut
    Pour ma part, je peux rajouter ça:

    - l'ajout d'éffets InnerShadow sur plusieurs grands rectangles comportant un gradient divise les performances par 10, au moins! (ça le faisait pas en 1.1)

    - requestFocus() sur une TextBox reset le contenu sous Linux, mais pas sous Windows qui là est surligné en bleu

    - la simple mis à jour de la chaîne de caractère affichée par un composant Text bloque l'EDT. J'ai de grandes fenêtres avec de nombreuses données à modifier en temps réel, et ça freeze tout le reste à chaque mise à jour pendant quelques ms du coup ça rame.

    - sur la même application, les performances linux sont de l'ordre de 10 fois inférieures au rendu sous Windows (le SDK linux est considéré comme beta, je sais ^^)

    - les propriétés nodeHPos et nodeVPos de la Stack ne marchent plus dès que l'on utilise un autre layout comme content. Exemple, Stack avec une VBox dedans, la VBox est incentrable. On remplace la VBox par une TextBox, elle est centrée.

  6. #6
    Membre expérimenté

    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
    Par défaut
    L'histoire du gradient et du drop shadow, en effet je crois l'avoir vu sur JIRA, par contre as-tu essayé de mettre cache=true sur tes composants pour voir si il y avait une difference?

  7. #7
    Membre averti
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    32
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Avril 2009
    Messages : 32
    Par défaut
    Citation Envoyé par galien Voir le message
    L'histoire du gradient et du drop shadow, en effet je crois l'avoir vu sur JIRA, par contre as-tu essayé de mettre cache=true sur tes composants pour voir si il y avait une difference?
    [edit] Petite boulette de ma part, ce sont des InnerShadow et pas des DropShadow

    Oui, c'est comme ça que j'avais résolu le problème avec le 1.1. Mais depuis la 1.2, cache=true empèche la fenêtre de ramer que si le gradient est seul. Une fois l'ombre appliquée en plus du gradient, les performances rechuttent au même niveau qu'un cache=false. Actuellement, je suis obligé d'enlever la plupart de mes InnerShadow :/

  8. #8
    Rédacteur/Modérateur

    Avatar de bouye
    Homme Profil pro
    Information Technologies Specialist (Scientific Computing)
    Inscrit en
    Août 2005
    Messages
    6 900
    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 900
    Billets dans le blog
    54
    Par défaut
    Citation Envoyé par galien Voir le message
    @bouye, pour les textbox, dans une box je detecte pas les problème de layout... que j'avais remarqué au début, strange dites vous?

    Encore une fois cela depend de l'agencement des layouts dans lesquels ces controles sont mis. Par exemple ici qui simule une UI faite de controle separes, le fait de mettre chaque VBox dans son propre Group (apres tout on pourrait avoir envie de mettre des glasspane et autre decoration sur ces VBox) fait que les espacements entre chaque composant varie lorsqu'on fait circuler le focus (sous Windows) :

    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
    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
     
    /*
     * Main.fx
     *
     * Created on Aug 28, 2009, 11:35:38 AM
     */
     
    package test;
     
    import javafx.scene.layout.HBox;
    import javafx.scene.layout.VBox;
    import javafx.scene.control.Label;
    import javafx.scene.layout.LayoutInfo;
    import javafx.scene.control.TextBox;
    import javafx.geometry.VPos;
    import javafx.scene.Group;
    import javafx.scene.shape.Rectangle;
    import javafx.scene.paint.Color;
    import javafx.scene.Scene;
    import javafx.stage.Stage;
    import javafx.scene.shape.Line;
     
    /**
     * @author Fabrice Bouyé (fabriceb@spc.int)
     */
     
    def ui:VBox = VBox {
        spacing: 5;
        content: for (i in [0..3]) {
            def panel:VBox = VBox {
                spacing: 5;
                content: [
                    Group {
                        def label:Label = Label {
                            layoutInfo: LayoutInfo { width: 75 }
                            text:##"Options {i+1}"
                        }
                        content: [
                            label,
                            Line {
                                startX: 0; startY: bind label.layoutBounds.maxY;
                                endX: bind label.layoutBounds.width; endY: bind label.layoutBounds.maxY;
                            }
                        ]
                    }
                    HBox {
                        spacing: 5;
                        nodeVPos: VPos.CENTER;
                        content: [
                            Label {
                                layoutInfo: LayoutInfo { width: 75 }
                                text:##"Name"
                            }
                            TextBox {
     
                            }
                        ]
                    }
                    HBox {
                        spacing: 5;
                        nodeVPos: VPos.CENTER;
                        content: [
                            Label {
                                layoutInfo: LayoutInfo { width: 75 }
                                text: ##"Password"
                            }
                            TextBox {
     
                            }
                        ]
                    }
                ]
            }
            def layoutRect:Rectangle = Rectangle {
                fill: null;
                stroke: Color.RED;
                x: bind panel.layoutX;
                y: bind panel.layoutY;
                width: bind panel.layoutBounds.width;
                height: bind panel.layoutBounds.height;
            }
            def parentRect:Rectangle = Rectangle {
                fill: null;
                stroke: Color.BLUEVIOLET;
                strokeDashArray: [ 10 , 10]
                x: bind panel.boundsInParent.minX;
                y: bind panel.boundsInParent.minY;
                width: bind panel.boundsInParent.width;
                height: bind panel.boundsInParent.height;
            }
            def group = Group {
                content: [
                    panel,
                    //layoutRect,
                    //parentRect
                ]
            }
        }
    }
    Stage {
        title: "Application title"
        scene: Scene {
            content: [
                Group {
                    content: [
                        ui
                    ]
                }
            ]
        }
    }
    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 expérimenté

    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
    Par défaut
    Salut Bouye,
    J'ai été un peu vite dans mes affirmations plus haut, j'ai été aussi victime du même problème . Alors je te donne ma version du crime . Il semblerait que dans les layouts resizable à base de group, du moins H/VBox, j'ai pas testé le reste, le dernier élément de la séquence de nodes ne soit pas correctement recalculé en tout cas si son boundsInParent change. On peut voir ca avec les premiers TextBox qui ne font pas varié le positionnement du VBox interne.
    Donc en résumé dès que l'on a des V/HBox imbriqués ça joue des castagnettes.
    Le vaccin un peu bricolo du dimanche mais qui fonctionne d'est de rajouter un node bidon à la fin du groupe qui lui ne bouge pas, un Rectangle vide fait l'affaire par exemple.
    Il reste quand même une inconnue, c'est que le bug n'apparait pas quand le panel n'est pas dans un Group (en commentaire), ça doit être un effet de bord du bug qui ne se montre pas dans ce cas.
    N'étant pas trop sûr que mes explication soient trop claires ton code avec la modif:
    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
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
     
    def ui:VBox = VBox {
        spacing: 5;
        content: for (i in [0..3]) {
            def panel:VBox = VBox {
                spacing: 5;
                content: [
                    Group {
                        def label:Label = Label {
                            layoutInfo: LayoutInfo { width: 75 }
                            text:##"Options {i+1}"
                        }
                        content: [
                            label,
                            Line {
                                startX: 0; startY: bind label.layoutBounds.maxY;
                                endX: bind label.layoutBounds.width; endY: bind label.layoutBounds.maxY;
                            }
                        ]
                    }
                    HBox {
                        spacing: 5;
                        nodeVPos: VPos.CENTER;
                        content: [
                            Label {
                                layoutInfo: LayoutInfo { width: 75 }
                                text:##"Name"
                            }
                            TextBox {
                                columns: 30
                                text: bind "je suis pas un problème"
                            }
                        ]
                    }
                    HBox {
                        spacing: 5;
                        nodeVPos: VPos.CENTER;
                        content: [
                            Label {
                                layoutInfo: LayoutInfo { width: 75 }
                                text:##"Name2"
                            }
                            TextBox {
                                columns: 30
                                text: "je suis pas un problème"
                            }
                        ]
                    }
                    HBox {
                        spacing: 5;
                        nodeVPos: VPos.CENTER;
                        content: [
                            Label {
                                layoutInfo: LayoutInfo { width: 75 }
                                text: ##"Password"
                            }
                            TextBox {
                                columns: 30
                                text: "je suis un problème si je suis le dernier"
                            }
                        ]
                    }
                    Rectangle {}//le petit dernier de la bande
                ]
            }
            def layoutRect:Rectangle = Rectangle {
                fill: null;
                stroke: Color.RED;
                x: bind panel.layoutX;
                y: bind panel.layoutY;
                width: bind panel.layoutBounds.width;
                height: bind panel.layoutBounds.height;
            }
            def parentRect:Rectangle = Rectangle {
                fill: null;
                stroke: Color.BLUEVIOLET;
                strokeDashArray: [ 10 , 10]
                x: bind panel.boundsInParent.minX;
                y: bind panel.boundsInParent.minY;
                width: bind panel.boundsInParent.width;
                height: bind panel.boundsInParent.height;
            }
    //        panel//pas de bug
            Group {//bug si c'est dans un group
                content:  [
                    panel,
    //                layoutRect,
    //                parentRect
                ]
            }
        }
    }

  10. #10
    Membre expérimenté

    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
    Par défaut
    Comment change-t-on le titre du topic svp? Je voudrais remplacer 1.3 par 1.2.1, en effet dans la 1.3 on va voir arriver Prism qui est la nouvelle implémentation de SceneGraph, ça va encore être du sport et en 3D svp
    Donc c'est plutôt la 1.2.1 qui risque de nous faire baisser la tension artérielle, si en plus on avait la change que les specs des layouts ne changent pas après

Discussions similaires

  1. Comment remonter des bugs "chez" Eclipse
    Par ogattaz dans le forum Eclipse Java
    Réponses: 1
    Dernier message: 22/05/2007, 17h53
  2. IdSMTPServer : Des bugs ?
    Par francky23012301 dans le forum Delphi
    Réponses: 1
    Dernier message: 28/01/2007, 00h30
  3. Ne peut accéder à la liste de correction des bugs...
    Par méphistopheles dans le forum Mode d'emploi & aide aux nouveaux
    Réponses: 2
    Dernier message: 02/05/2006, 21h59
  4. [BDE] Liste des bugs
    Par bezot3 dans le forum C++Builder
    Réponses: 2
    Dernier message: 05/01/2005, 17h24

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