javafx.scene.layout.HBox
を含むJavaFXシーンがあります。このHBox
には、2人の子供、javafx.scene.control.ComboBox
とそれに続くjavafx.scene.control.Spinner
が含まれています。私の問題を説明するための最小限のFXMLファイルは次のとおりです。コードでJavaFX HBox HGrow優先度
<?import javafx.scene.control.ComboBox?>
<?import javafx.scene.control.Spinner?>
<?import javafx.scene.control.SpinnerValueFactory.IntegerSpinnerValueFactory?>
<?import javafx.scene.layout.HBox?>
<HBox xmlns="http://javafx.com/javafx/8.0.65"
xmlns:fx="http://javafx.com/fxml/1">
<children>
<ComboBox fx:id="myComboBox" />
<Spinner fx:id="mySpinner" editable="true">
<valueFactory>
<SpinnerValueFactory.IntegerSpinnerValueFactory
min="0" max="999" initialValue="0" />
</valueFactory>
</Spinner>
</children>
</HBox>
、ComboBox
は(文字数)非常に長い文字列が移入されています。私はSpinner
の希望の幅も指定しています。望ましい効果がSpinner
制御は、それが幅を好んだ割り当てられ、ComboBox
制御はスペースの残りを与えられることである
@FXML
private ComboBox<String> myComboBox;
@FXML
private Spinner<Integer> mySpinner;
@Override
public void initialize(URL location, ResourceBundle resources) {
myComboBox.getItems().setAll(
"Some very long string that takes up a very large portion" +
" of the screen. You can probably see where this is going.");
mySpinner.getEditor().setPrefColumnCount(3);
}
:次のコードは、私がやっているものの代表です。しかし、私が見ているのは、ComboBox
コントロールに少なくとも1つの非常に長いオプションが含まれているため、ほとんどのスペースが(割り当てられたスペースよりもはるかに広いため)割り当てられているということです。私がスピナーコントロールで見ることができるのは上下の矢印だけです。
ComboBox
の推奨幅を検討する前に、JavaFXでSpinner
オブジェクトの領域を割り当てる方法を知っている人はいますか?
minWidthは役に立ちませんか? –
'minWidth'のために何を入れるべきかはわかりません。使用されているフォントに依存するからです。私は、RedHat LinuxがWindows 7よりもはるかに大きな既定のフォントを使用していることを観察しました。フォントを事前に知っていないと(Windowsのフォントサイズなどのユーザー設定可能な設定)、 'minWidth'有用。 –
'Spinner'のフォントは' spinner.getEditor()。getFont() ' – jns