2017-01-15 11 views
1

私は入力するテキストボックスを提供しているjavafxプロジェクトに取り組んでいます。テキストボックスの%を計算したいと思います。例えば100文字が限界です.50 50が%の値になるはずですが、入力を続けると自動的に変更されるはずです。私はそれを行う方法を正確にはわかりません(特に自動のもの)。ヘルプが必要です (ボタンを無視)入力したテキストボックスの%を計算する

enter image description here :私はこのようなプログレスバー上の%値を表示したいです!あらかじめありがとうございます

答えて

1

自分でDoubleBindingを定義してtextPropertyにバインドし、各変更ごとにその値を再評価します。あなたはTextFieldtextPropertyをバインドDoubleBindingの静的初期化子ブロックで

final double max = 100; 
TextField text = new TextField(); 
DoubleBinding percentage = new DoubleBinding() { 
    { 
     super.bind(text.textProperty()); 
    } 
    @Override 
    protected double computeValue() { 
     return text.getText().length()/max; 
    } 
}; 

。これにより、computeValueメソッドによるバインディングの再評価が発生します。そして、あなたがLabeltextPropertyにバインドすることができます:もちろん

Label lbl = new Label(); 
lbl.textProperty().bind(percentage.asString()); 

をあなたもProgressBarまたはProgressIndicatorなどのLabel以外のコントロールにバインドすることができます

ProgressBar bar = new ProgressBar(); 
bar.progressProperty().bind(percentage); 
ProgressIndicator indicator = new ProgressIndicator(); 
indicator.progressProperty().bind(percentage); 

このバインディング、その後することができすでに記入された割合を表示するために使用されます。もご覧ください。このバインディングのタイプは、低レベルのバインディングです。

+0

Thanx @hotzst ..どのように役立つかを少し説明してください。 – minigeek

+0

@minigeekは、バインディングを使用する方法といくつかの例を追加しました。 – hotzst

+0

Tysm @hotzst ... gr8 – minigeek

関連する問題