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 :

ScrollPane "fit-to-height" qui ne fonctionne pas


Sujet :

JavaFX

  1. #1
    Membre habitué
    Profil pro
    Inscrit en
    Mai 2010
    Messages
    123
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mai 2010
    Messages : 123
    Points : 137
    Points
    137
    Par défaut ScrollPane "fit-to-height" qui ne fonctionne pas
    Bonjour,

    J'ai un écran qui est découpé en 3 parties comme suit:
    Nom : jme_issue_scrollpane.png
Affichages : 119
Taille : 5,0 Ko

    Le problème que j'ai est que le ScrollPane (entouré en bleu) prend bien toute la place en largeur mais pas en hauteur. Lorsque je redimensionne l'écran, les deux ScrollPane (à gauche et en bas) se redimensionnent bien mais le scrollPane de gauche se redimensionne correctement en hauteur.

    J'ai tout essayé:
    • Dans le css:
      -fx-fit-to-height: true;
    • Dans le fxml:
      fitToHeight="true"
    • Dans le fxml:
      VBox.vgrow="ALWAYS" maxHeight="Infinity"

    Mais rien ne fonctionne :-(

    Ce que je désire faire, c'est que le ScrollPane (entouré en bleu) prenne toute la place qui reste dans le VBox et ce, même lorsque la fenêtre est redimentionnée.

    Quelqu'un peut-il aider?

    Voici le code:
    page.fxml
    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
    <?xml version="1.0" encoding="UTF-8"?>
     
    <?import java.net.*?>
    <?import java.lang.*?>
    <?import javafx.scene.control.Label?>
    <?import javafx.scene.control.Menu?>
    <?import javafx.scene.control.MenuBar?>
    <?import javafx.scene.control.MenuItem?>
    <?import javafx.scene.control.SeparatorMenuItem?>
    <?import javafx.scene.layout.Pane?>
    <?import javafx.scene.layout.VBox?>
    <?import javafx.scene.text.Font?>
    <?import javafx.scene.layout.HBox?>
    <?import javafx.scene.control.Separator?>
    <?import javafx.scene.control.ScrollPane?>
    <?import javafx.scene.text.TextFlow?>
    <?import javafx.scene.text.Text?>
     
    <VBox fx:controller="controller.page.MainPageController"
    	styleClass="window_width, window_height"
    	xmlns="http://javafx.com/javafx/8.0.301" xmlns:fx="http://javafx.com/fxml/1">
     
    	<stylesheets>
    		<URL value="@/styles/styles.css"/>
    	</stylesheets>
     
    	<children>
    		<MenuBar VBox.vgrow="NEVER">
    			<menus>
    				<Menu text="%main_btn_play">
    					<items>
    						<MenuItem text="%main_btn_play_free" />
    						<MenuItem text="%main_btn_play_specific" />
    					</items>
    				</Menu>
    				<Menu text="%main_btn_import">
    				</Menu>
    				<Menu text="%main_btn_quit">
    				</Menu>
    			</menus>
    		</MenuBar>
    		<VBox >
    			<HBox>
    				<Pane fx:id="boardgamePane" styleClass="boardgame_pane" HBox.hgrow="ALWAYS" maxWidth="Infinity">
    				</Pane>
    				<Separator orientation="VERTICAL"/>
    				<ScrollPane styleClass="listplay_pane" HBox.hgrow="ALWAYS" maxWidth="Infinity">
     
    				</ScrollPane>
    			</HBox>
    			<ScrollPane fitToHeight="true" VBox.vgrow="ALWAYS" maxHeight="Infinity" styleClass="comments_pane">
    			</ScrollPane>
    		</VBox>
    	</children>
    </VBox>
    et le styles.css:
    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
    /**
     * WINDOWS
     */
    .window_width {
    	-fx-pref-width: 1024;
    }
     
    .window_height {
    	-fx-pref-height: 768;
    }
     
    /*
     * MAIN PAGE PANES
     * */
     .boardgame_pane {
    	-fx-min-width: 800;
    	-fx-min-height: 600;
     }
     
     .listplay_pane {
    	-fx-pref-width: 224;
    	-fx-pref-height: 600;
     }
     
     .comments_pane {
    	-fx-fit-to-width: true;
    	-fx-fit-to-height: true;
     }
    D'avance un grand merci!

  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 854
    Points
    22 854
    Billets dans le blog
    51
    Par défaut
    Citation Envoyé par javadoc
    final BooleanProperty fitToHeight If true and if the contained node is a Resizable, then the node will be kept resized to match the height of the ScrollPane's viewport.
    fitToHeight s'applique au contenu du ScrollPane et non pas au ScrollPane lui-même.

    De plus, la doc indique bien que, par défaut, VBox fait uniquement un redimensionnement dynamique horizontal de son contenu (et donc qu'il faut mettre VBox.vgrow="ALWAYS" pour avoir un redimensionnement vertical dynamique).

    Citation Envoyé par javadoc
    VBox will resize children (if resizable) to their preferred heights and uses its fillWidth property to determine whether to resize their widths
    Or, si tu regardes ton FXML de plus près, tu peux voir que tu as une VBox dans une VBox, mais que tu as oublié de mettre un indice de redimensionnement sur la seconde VBox.

    Donc soit tu fais sur la seconde VBox :

    Code XML : Sélectionner tout - Visualiser dans une fenêtre à part
    <VBox VBox.vgrow="ALWAYS">

    Soit tu l’élimines directement car tu peux faire avec une seule VBox en fait.
    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
    Membre habitué
    Profil pro
    Inscrit en
    Mai 2010
    Messages
    123
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mai 2010
    Messages : 123
    Points : 137
    Points
    137
    Par défaut
    Citation Envoyé par bouye Voir le message
    fitToHeightsi tu regardes ton FXML de plus près, tu peux voir que tu as une VBox dans une VBox, mais que tu as oublié de mettre un indice de redimensionnement sur la seconde VBox.

    Donc soit tu fais sur la seconde VBox :

    Code XML : Sélectionner tout - Visualiser dans une fenêtre à part
    <VBox VBox.vgrow="ALWAYS">

    Soit tu l’élimines directement car tu peux faire avec une seule VBox en fait.
    Ah ben oui... J'ai supprimé la seconde VBox qui était, de fait, inutile...
    Merci beaucoup!

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Propriété line-height qui ne fonctionne pas sous FF 3.5?
    Par MicaelFelix dans le forum Mise en page CSS
    Réponses: 2
    Dernier message: 03/03/2010, 21h06
  2. Fonction Quoted printable qui ne fonctionne pas.
    Par leCcsympas dans le forum C
    Réponses: 3
    Dernier message: 13/01/2007, 18h54
  3. Jointure externe qui ne fonctionne pas
    Par Guizz dans le forum Langage SQL
    Réponses: 3
    Dernier message: 05/02/2004, 12h26
  4. CREATEFILEMAPPING qui ne fonctionne pas???
    Par Jasmine dans le forum MFC
    Réponses: 2
    Dernier message: 06/01/2004, 19h33
  5. UNION qui ne fonctionne pas
    Par r-zo dans le forum Langage SQL
    Réponses: 7
    Dernier message: 21/07/2003, 10h04

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