2013-03-10 19 views
6

Tüm SplitPane'ın orantılı yeniden boyutlandırmasını nasıl sağlayabilirim?JavaFX - SplitPane, yeniden boyutlandırma ve orantılar

enter image description here

Seti bölücüler ben onlar gibi nasıl:

public class JfxSplitPaneTest extends Application { 
    @Override 
    public void start(Stage stage) throws Exception { 
     SplitPane split = new SplitPane(); 
     StackPane child1 = new StackPane(); 
     child1.setStyle("-fx-background-color: #0000AA;"); 
     StackPane child2 = new StackPane(); 
     child2.setStyle("-fx-background-color: #00AA00;"); 
     StackPane child3 = new StackPane(); 
     child3.setStyle("-fx-background-color: #AA0000;"); 
     split.getItems().addAll(child1, child2, child3); 
     //split.setDividerPositions(0.1f, 0.6f, 0.9f) 
     stage.setScene(new Scene(split, 400, 300)); 
     stage.show(); 
    } 
    public static void main(String[] args) { 
     launch(args); 
    } 
} 
programını başlatın

enter image description here

ben devam etti ve hatta daha küçük yapılmış (pencere genişliği gerçekten küçük olun resim yok:

Geri bölerek ve bölücülerle bunları nasıl ayarlayacağımı veya program başladığında nasıl olduklarını gözlemleyin. Bunu yapmak

enter image description here

yakın ne beklenir bunu yapar:

bölücüler yanlış pozisyonda Unsettling olduklarını (I SplitPane boyutlandırmak kadar 1px yeterlidir) ve pencereyi küçülen hariç
child1.setMinWidth(Region.USE_PREF_SIZE) 
    child1.setPrefWidth(100) 
    child2.setMinWidth(Region.USE_PREF_SIZE) 
    child2.setPrefWidth(200) 
    child3.setMinWidth(Region.USE_PREF_SIZE) 
    child3.setPrefWidth(300) 

genişlik, bölücüler bileşenlerin içinde.

Bu işi nasıl yapabilirim?

cevap

1

stage.widthProperty() ve stage.heightProperty() değiştirin İşleyici'yi eklemeyi deneyin. Ve bu çağrı:

split.setDividerPositions(0.1f, 0.6f, 0.9f)