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:

good rendering, expected

bad layout of button, "center" content of borderpane accordion:

bad layout of button

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?

edit bug entered javafx bug tracking system jira.

what javafx version? tried latest build (java 8 eap b88) , result this:

enter image description here


Comments

Popular posts from this blog

linux - xterm copying to CLIPBOARD using copy-selection causes automatic updating of CLIPBOARD upon mouse selection -

c++ - qgraphicsview horizontal scrolling always has a vertical delta -