setPrefColumnCount
を呼び出した後に、javafx.scene.control.TextField
の適切な幅が正しく計算されないという奇妙な動作が見られます。私の具体的な使用例は、javafx.scene.control.Spinner
コントロールです。JavaFX TextField.setPrefColumnCount()が動作しません。
:
@FXML
private Spinner<Integer> mySpinner;
@Override
public void initialize(URL location, ResourceBundle resources) {
mySpinner.getEditor().setPrefColumnCount(3);
}
上記を実行した後、私は(スピナー値は999で描かれて)単一の文字のための十分なかろうじて大きいスピナーを取得し、次のように私のコードです誰もが表示できるようにする数字の数に基づいてTextField
の幅を設定する正しい方法を知っていますか?私はWindows 7 Enterprise SP1 x64上でJRE 8u77を使用しています。
EDIT
私は問題の一部は、私が指示here経由でテキストを測定する場合でも、私はまだにSpinner.prefWidth
を設定するかわからないということであることを実現しています。さらに、TextField
エディタのprefWidth
をSpinner
オブジェクトに設定しても変わりません。 TextField.padding
プロパティを取得する方法はありますか(最終的に両側に7に設定されますが、initialize
メソッド内で0を返します)。上下の矢印の幅を照会する方法はありますか?何らかの形でこれらの値を計算/照会できたら、測定テキストテクニックを使用できます。その情報がなければ、私はそれについてどうやって行くのか分かりません。
そのプロパティは私のために働いたことはありません。私は相対的な表示のスケーリングを決定するために別の方法を使用してその周りにいた。私はcssのem値のようなものである変数を作成しました。 'final static double em = Math.print(new Text(" ")。getLayoutBounds()。getHeight());そして、それを乗数を使って相対的な幅と高さの基礎として使用します。 'navButtons.setButtonMinWidth(5 * em);' – RonSiven
私は[測定テキスト](http://stackoverflow.com/a/13020490/960115)に基づいて、ゼロ桁の数字を含むような何かをしようとしました。しかし、Spinnerオブジェクトの特定のケースでは、私はその測定をどのように適用するかと苦労しています。基礎となる 'TextField'の' prefWidth'を設定することは、 'padding'プロパティ(' initialize'メソッド内では0を返しますが、それは7にもなりますが)とアップ/私は得ることができない幅)。 –