2016-08-29 6 views
1

内ラベルを成長させる:は、どのように私は次のセットアップを得たVBoxの

Label errorLabel = new Label("Hello Hans"); 
Label warningLabel = new Label("HEEELLLOOOOOOOOOOOOOOOOOOOOOOOOO"); 
VBox box = new VBox(); 
box.getChildren().addAll(errorLabel, warningLabel); 
Tooltip t = new Tooltip(); 
t.setGraphic(box); 
t.show(); 

私の問題はある、warningLabelerrorLabelは異なるサイズを持っていること。両方とも同じサイズに水平に成長する必要があります。私は特定のサイズを入れたくありません。両方のサイズは、テキスト全体を表示するために必要なラベルの数より大きくなければなりません。

問題は、両方のラベルに背景があり、warningLabelがより多くの領域を占めることがわかります。私はそれらのラベルの両方の背景が均等に成長する必要があります。

+0

通常、 'Label'sはその内容に基づいて成長するので、私は何が問題なのか分かりません。もっと正確に指定してください。たとえば、「ラベル」と写真の両方のサンプルテキスト、取得したものと取得したいものを入力します。 – DVarga

+0

@DVarga:ありがとう。私が作業しているPCは厳密にインターネットから切断されているので、私はスクリーンショットを提供できません。私はこれを書いているPCと私が取り組んでいるPCの間で何も共有できません。私はいくつかの詳細を追加しました。 – codepleb

答えて

1

Labelの場合はmaxWidthPropertyDouble.MAX_VALUEに設定できます。

Label errorLabel = new Label("Hello Hans"); 
errorLabel.setStyle("-fx-background-color: red"); 
Label warningLabel = new Label("HEEELLLOOOOOOOOOOOOOOOOOOOOOOOOO"); 
warningLabel.setStyle("-fx-background-color: orange"); 
warningLabel.setMaxWidth(Double.MAX_VALUE); 
errorLabel.setMaxWidth(Double.MAX_VALUE); 

出力Tooltipは次のようである:

enter image description here

背景:Making Buttons the Same Size - Using a VBox - Example 2-1

のVBox ペインの幅にサイズを変更するすべてのボタンを有効にするには、各ボタンの最大幅はDouble.MAX_VALUEに設定されます定数。コントロールを無制限に拡張できます。 最大値定数を使用する代わりに、 の最大幅を80.0などの特定の値に設定することもできます。

注:サイズ変更可能な子供たちがいっぱい を埋めるようにサイズ変更されるかどうか

VBoxfillWidthPropertyが(このプロパティは、デフォルトではtrueです)trueに設定しなければならないことが重要 vboxの幅、またはそれらの好ましい幅に保たれ、整列hpos値に従って に整列されます。

ので、これは重要です:VBoxのが(サイズ変更可能な場合)、その好適な高さ に子供のサイズを変更し、独自の幅を埋めるために彼らの 幅のサイズを変更するか、維持するかどうかを決定するために、そのfillWidthプロパティを使用します

それらの幅を優先して に設定します(fillWidthのデフォルトはtrue)。 fillWidthPropertyがtrueに設定されている場合

ので、VBoxmaxWidthPropertyが各子供の好適な幅に設定されている場合は不可能である自身の幅にその子のサイズを変更しようとする、それがなぜ、このプロパティが必要です「十分に大きい」数に設定してください。

+0

これはそれです...ありがとうございます!これを達成するためには、maxWidthとして「高い」Double値を設定する必要がありますが、これはうまくいきました。 :) – codepleb

+0

私はそれがハックではないことを納得させる答えを更新しました。そして、背後にある論理は何ですか? – DVarga

+0

私は受け入れて投票するのを忘れました。私はあなたにここでハックを張ったと言いたくはありませんでしたが、このような方法で達成する必要があるのはちょっと奇妙です。たとえば、 'maxWidthProperty'は、デフォルトでDouble.'MAX_VALUE'に設定することができます。 – codepleb

関連する問題