私はスレッドを使用してAnchorPaneの不透明度を変更します。 不透明度を徐々に上げるonMouseEnterメソッドと、徐々に不透明度を下げるonMouseExitedメソッドを追加します。 私は2つのペインを持っています。私のマウスがそれらのいずれかを入力すると、2つのペインはどちらも不透明になります。 その後、私は自分のアプリケーションを起動します。私は、マウスがある時間入力して終了した後、特定の不透明度で停止し、もう一方は不透明度を徐々に変えます。javafx setOpacityメソッドが何度か繰り返されても機能しない
private double base = 0.5;
private void changeOpacity(boolean increase){
new Thread(()-> {
while((increase && base < 0.9) || ((!increase)&&base > 0.5)){
base += increase?0.01:-0.01;
leftPane.setOpacity(base);
rightPane.setOpacity(base);
Thread.sleep(5);
}
}
}
私は私の下手な英語のため申し訳ありません: これが起こる理由は、私は混乱しています... 私のコードは次のようにしています。ありがとうございます!
変数は、スレッドローカルにキャッシュされている(ParallelTransitionと一緒に)キーフレーム
UIをバックグラウンドスレッドから変更することはできません。 'Platform.runLater(...)'の 'setOpacity(...)'に呼び出しをラップする必要があります。しかし、このために[FadeTransition'](http://docs.oracle.com/javase/8/javafx/api/javafx/animation/FadeTransition.html)を使用しないでください(オーバーヘッドを避け、最初の場所に背景スレッド)? –