2013-04-26 14 views
13

JavaFX docs for HBox ki: Bir HBox onun tercih genişliğinden daha büyük boyutlandırılırJavaFX HBox'ımdaki çocuklar neden büyüyor (SceneBuilder)?

ise varsayılan olarak kullanılmayan fazladan alan bırakarak onların tercih genişlikleri çocukları tutacak. Eğer bir uygulamada bir veya daha fazla çocuğa bu fazladan alan tahsis edilmesi isteniyorsa, çocuk için isteğe bağlı olarak hgrow kısıtlaması getirilebilir. Ayrıntılar için bkz. "İsteğe Bağlı Düzen Kısıtlamaları".

Ekli görüntüde, düğme neden yatay genişliği dolduruyor?

enter image description here

docs bakın HBox.setHgrow(field, Priority.ALWAYS) kodu olarak aynı değil.

cevap

19

Eğer ekran görüntüsünde ve Max Genişliği ayarlamak sağdaki Düzen bölmesinde olanlar Boyut kutularında yapmış gibi düğmesini seçin:

MAX_VALUE 

Bu olmaktan düğmeye maksimum boyutu duracak düğmenin tercih edilen boyutuna bağlı.

Oracle'ın Tips for Sizing and Aligning Nodes

UI denetimleri de kontrolün tipik kullanıma dayalı varsayılan minimum ve maksimum boyutları sağlamak Bkz. Örneğin, bir Button nesnesinin maksimum boyutu, genellikle düğmelerin rasgele genişlemesini istemediğiniz için varsayılan olarak varsayılan boyutuna göre değişir.

....

düğmeleri her etkinleştirmek için VBox bölmesinin genişliğine boyutlandırılmasını, her düğmenin maksimum genişlik, bir kontrol sağlar Double.MAX_VALUE sabit, ayarlanır sınırsız büyümek. Maksimum değer sabitini kullanmanın bir alternatifi, maksimum genişliği 80.0 gibi belirli bir değere ayarlamaktır. doğrudan fxml kullanırsanız

+0

: 'myButton.setMaxWidth (Double.MAX_VALUE);' –

2

, sen maxWidth="Infinity" kullanabilir veya - maxWidth="1.7976931348623157E308" tarafından temsil edilmektedir MAX_VALUE kullanırken SceneBuilder yaptığı gibi.

Bu (ilerleme çubuğu bir GridPane içindedir aşağıdaki gibi görünebilir:

kodunda Eşdeğer
<ProgressBar maxWidth="Infinity" prefWidth="200.0" progress="0.0" GridPane.columnIndex="0" GridPane.hgrow="ALWAYS" GridPane.rowIndex="2" GridPane.valignment="CENTER">