java - Layout GridPanel BorderPanel Button Accordion -
context:
- windows 7 64 bit
- public jdk 7 "1.7.0_13" build 1.7.0_13-b20
here 2 snapshots of sscce written show strange behavior of layout or without accordion cell gridpane, code reproduce these behaviors , questions ask.
good rendering, expected, "center" content of borderpane label:
bad layout of button, "center" content of borderpane accordion:
the code:
import javafx.application.application; import javafx.geometry.hpos; import javafx.scene.scene; import javafx.scene.control.accordion; import javafx.scene.control.button; import javafx.scene.control.label; import javafx.scene.control.textfield; import javafx.scene.control.titledpane; import javafx.scene.layout.borderpane; import javafx.scene.layout.gridpane; import javafx.scene.layout.priority; import javafx.stage.stage; public class sscce extends application { public static final boolean too_big_button = true; // public static final boolean too_big_button = false; public static void main( string[] args ) { launch( args ); } @suppresswarnings("nls") @override public void start( stage stage ) { textfield tf = new textfield( "textfield" ); borderpane bp = new borderpane(); label lv = new label( "borderpane - center - center - center - center - center" ); lv.setprefheight( 96.0 ); if( too_big_button ) { accordion acc = new accordion(); titledpane tp = new titledpane( "titled pane", lv ); acc.getpanes().add( tp ); acc.setexpandedpane( tp ); stage.settitle( "sscce - large button" ); bp.setcenter( acc ); } else { stage.settitle( "sscce - expected" ); bp.setcenter( lv ); } gridpane gp = new gridpane(); label lbl = new label( "label: " ); button btn = new button( "button" ); btn.setmaxwidth( double.max_value ); gp.add( lbl, 0, 1 ); gp.add( tf , 1, 1 ); gp.add( btn, 2, 1 ); gp.add( bp , 0, 2, 3, 1 ); gridpane.sethgrow( tf , priority.always ); gridpane.sethgrow( btn, priority.never ); gridpane.sethalignment( btn, hpos.right ); stage.setscene( new scene( gp )); stage.centeronscreen(); stage.show(); } }
the questions:
- why?
- how can layout manager compute right size of button?
what javafx version? tried latest build (java 8 eap b88) , result this:
Comments
Post a Comment