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 :

Remplacer un bind par un on replace


Sujet :

JavaFX

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre habitué
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2008
    Messages : 7
    Par défaut Remplacer un bind par un on replace
    Bonjour,

    J'ai lu à pas mal d'endroits que le binding était un tueur de performances et je me demandais si il était possible dans certains cas de le remplacer par de simple trigger

    J'ai une Scene qui contient un CustomNode nommé module. Au cours de l'exécution du programme, la fonction remplirModule est appelée. Cette méthode assigne à module une instance d'une classe personnalisée qui étend CustomNode. Comme module est précédé de bind dans la Scene et que son contenu change, l'affichage est réactualisé.

    Avec bind:
    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
     
    var module:CustomNode;
     
    Stage {
                scene: Scene {
                   content:  [
                      Group{
                           content: bind [
                                    Rectangle{
                                        fill:Color.SILVER
                                    },
                                    module
                                ]
                            } ]}]}}}
     
     
    public function remplirModule(String): Void {
            module= MonCustomNode {
               //Cette classe étend CustomNode
               contenu:String;
            }
    }
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    public class MonCustomNode extends  CUstomNode {
      var contenu: String;
      override function create() {
        Group {
          content :[
          Text {
                        font: Font {size: 16}
                        content: contenu
           }
          ]
        }
      }
    }
    Avec triger :

    Est-il possible d'appeler une sorte de méthode "repaint" sur le CustomNode qui forcerait le réaffichage de ce bloc quand le triger se déclenche ?

    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
     
    var module:CustomNode on replace{
      //!!!! Ici il faudrait forcer le "repaint" du CustomNode module  dans la Scene
      //To implement
    };
     
    Stage {
                scene: Scene {
                   content:  [
                      Group{
                           content: [
                                    Rectangle{
                                        fill:Color.SILVER
                                    },
                                    module
                                ]
                            }
     
                            ]
            } ]}]}}}
     
     
    public function remplirModule(String): Void {
            module= MonCustomNode {
               //Cette classe étend CustomNode
               contenu:String;
            }
    }

  2. #2
    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,
    A ma connaissance lorsque tu modifie un element d'un Group le runtime de javaFX le rafraichit automatiquement. La limitation est aujourd'hui sur les VBox et HBox qui ne ne se remettent pas à jour. Sinon faut peut etre attendre cette semaine et la sortie de la prochaine release à javaone pour coder de l'interface en javaFX.

Discussions similaires

  1. remplacer window.open par window.location.replace
    Par serna dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 21/12/2009, 17h06
  2. Réponses: 2
    Dernier message: 26/07/2005, 21h44
  3. Réponses: 5
    Dernier message: 30/05/2005, 16h58
  4. Réponses: 2
    Dernier message: 15/03/2005, 15h40
  5. Remplacer plusieurs colonnes par un 'alias'
    Par zestrellita dans le forum Langage SQL
    Réponses: 7
    Dernier message: 22/04/2004, 16h51

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