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 :

Comment faire dépendre la taille d'objets graphiques sous JavaFx


Sujet :

JavaFX

  1. #1
    Nouveau membre du Club Avatar de bach58
    Homme Profil pro
    Inscrit en
    Septembre 2007
    Messages
    35
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations forums :
    Inscription : Septembre 2007
    Messages : 35
    Points : 28
    Points
    28
    Par défaut Comment faire dépendre la taille d'objets graphiques sous JavaFx
    J'essaie de réaliser sous JavaFx, un composant graphique que j'avais fait sous Swing (assez facilement!). Mais je ne trouve pas de solutions et ce n'est pas faute d'avoir essayé!!!

    Le composant en question doit afficher des données dans un tableau avec des étiquettes aussi bien pour les lignes que pour les colonnes.

    Pour ce faire, j'utilise un GridPane pour le tableau et un VBox pour les étiquettes des lignes et un HBox pour celles des colonnes. Seulement, je n'ai toujours pas trouvé la solution pour que les hauteurs des cellules du HBox (resp. les largeurs des cellules du VBox) soient identiques aux hauteurs des lignes du tableau (resp. aux largeurs des colonnes du tableau).


    Merci d'avance aux expérimentés de m'aider à trouver la solution.

  2. #2
    Rédacteur/Modérateur

    Avatar de bouye
    Homme Profil pro
    Information Technologies Specialist (Scientific Computing)
    Inscrit en
    Août 2005
    Messages
    6 840
    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 840
    Points : 22 855
    Points
    22 855
    Billets dans le blog
    51
    Par défaut
    Est-ce que tu peux nous mettre un cours bout de code ou un exemple (pas avec les vraies données) qui démontre le soucis ? Quelles valeurs as-tu utilise pour les min, pref et max height et width sur les contraintes des lignes et des colonnes de la grille ?
    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
    Nouveau membre du Club Avatar de bach58
    Homme Profil pro
    Inscrit en
    Septembre 2007
    Messages
    35
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations forums :
    Inscription : Septembre 2007
    Messages : 35
    Points : 28
    Points
    28
    Par défaut
    Merci de votre réponse mais le code ne peut pas expliciter le souci.

    Ce que je veux est que FX me calcule les tailles qui conviennent à chaque ligne ou colonne (étant donnée leur contenu) du tableau, et qu’ensuite le programme en déduit les tailles des étiquettes pour garder l’alignement entre étiquettes et lignes et colonnes du tableau.


    Le vrai souci est que j'ai besoin d'un premier calcul pour chaque objet graphique correspondant à leur contenu, afin de gérer et propager le redimensionnement des objets dépendants. Les pref, min et max sont des valeurs données par l'user mais dans ce cas, il est impossible de les donner! Donc comment faire pour démarrer l'algo ? J'ai essayé les bind, les compute..., les listener.. mais tout conduit à une impasse car tous se basent sur les valeurs que l'utilisateur donne et quand on ne donne rien (comme dans mon cas), rien ne marche!

    Enfin, il est impératif de distinguer étiquettes et données (sinon j'aurais mis tout dans une seule grid), car les premières sont fixes et les dernières sont "scrollables'.

    Qu'en pensez-vous?

  4. #4
    Nouveau membre du Club Avatar de bach58
    Homme Profil pro
    Inscrit en
    Septembre 2007
    Messages
    35
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations forums :
    Inscription : Septembre 2007
    Messages : 35
    Points : 28
    Points
    28
    Par défaut
    Plus simplement : si on a deux boutons ou labels et on veut que la largeur des deux égale celle de la plus large d'entre eux.

  5. #5
    Rédacteur/Modérateur

    Avatar de bouye
    Homme Profil pro
    Information Technologies Specialist (Scientific Computing)
    Inscrit en
    Août 2005
    Messages
    6 840
    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 840
    Points : 22 855
    Points
    22 855
    Billets dans le blog
    51
    Par défaut
    Je dirai comme ça mais je ne suis pas sur que ça soit ce que tu cherches :

    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
    public class Main extends Application {
     
        @Override
        public void start(Stage primaryStage) {
            final Button button1 = new Button("Hello World");
            final Button button2 = new Button("Hello");
            final Pane root = new Pane(button1, button2) {
                @Override
                protected void layoutChildren() {
                    super.layoutChildren();
                    final double w1 = button1.getWidth();
                    final double w2 = button2.getWidth();
                    final double w = Math.max(w1, w2);
                    System.out.printf("%f\t%f -> %f%n", w1, w2, w);
                    button1.resize(w, button1.getHeight());
                    button2.resize(w, button2.getHeight());
                    button1.setLayoutX(10);
                    button1.setLayoutY(10);
                    button2.setLayoutX(10);
                    button2.setLayoutY(100);
                }
            };
            final Scene scene = new Scene(root, 500, 500);
            primaryStage.setTitle("Test");
            primaryStage.setScene(scene);
            primaryStage.show();
        }
     
        public static void main(String[] args) {
            launch(args);
        }
    }
    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
    Nouveau membre du Club Avatar de bach58
    Homme Profil pro
    Inscrit en
    Septembre 2007
    Messages
    35
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations forums :
    Inscription : Septembre 2007
    Messages : 35
    Points : 28
    Points
    28
    Par défaut
    Merci bouye.. C'est ça ce que je cherche.

    Hier j'ai trouvé la même idée dans http://stackoverflow.com/questions/2...with-same-size, et qui consiste à surcharger le layoutChildren. Je l'ai essayée et ça a marché dans ce contexte simple.

    A moi maintenant de l'appliquer sur un contexte bien plus complexe!

    Encore merci de ton aide

Discussions similaires

  1. Réponses: 4
    Dernier message: 29/08/2009, 19h16
  2. Comment faire une rotation 3D des objets
    Par dimainfo dans le forum ActionScript 3
    Réponses: 1
    Dernier message: 19/05/2009, 19h56
  3. Comment faire la reconnaissance d'un objet 3D ?
    Par ahmadou dans le forum Traitement d'images
    Réponses: 6
    Dernier message: 16/03/2009, 18h04
  4. Comment gérer la transparence d'un objet graphique uipanel
    Par pitizone dans le forum Interfaces Graphiques
    Réponses: 14
    Dernier message: 06/04/2007, 09h26
  5. faire dépendre la taille d'un cadre de la taille d'un autre cadre
    Par ANOVA dans le forum Balisage (X)HTML et validation W3C
    Réponses: 3
    Dernier message: 19/08/2006, 17h26

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