2013-09-03 15 views
6

私は現在の時刻を示す線でタイムラインを作成する必要があります。私は追加された行がScrollPaneに配置されたAnchorPaneを使用しています。私は1日をシミュレートする必要があり、スクロールペインの幅は(2880px、60pxは1時間です)です。私の限界は(前日12時間、翌日12時間)です。私の行を動かすことはうまくいきます。JavaFX ScrollPaneをスクロールして、ビューポートの中央にノードを置く方法はありますか?

私がする必要があるのは、ビューポートの中央に行を設定し、その下にコンテンツを移動することだけです。

scrollPane.setHvalue(line.getStartX() - anchorPane.width); 

それは「罰金の種類を」働いている:私は、このメソッドを使用していラインを移動するための 。コンテンツは動いていますが、ラインは動いています。私はラインが0時(位置は0.25に設定されている)から開始し、位置が(0.75)24時に終了しています。私も自分のタイムライン軸Yをスケーリングしてい ので

/* where line position is calculate by scale, scale is x2, x3, x4.... */ 
scrollPane.setHvalue(line.getStartX() - anchorPane.width * scale); 

は時間IMGSをご参照ください:夜12時00分、12時、24時... 正しいライン位置は唯一の12時です。 ..行の位置を設定する関数をどのように変更するのですか?

0:00 hour 12:00 24:00

+0

一言で言えば、緑色の線は現在の時刻を表し、タイムライングラフが右から左に流れる間、スクロールペインの中央で常に同じ位置にとどまるようにします。そうですか? –

+0

はい、まさしく...私はこのパネルを緑色の線の下に移動したいと思っています。 (上の軸はそれに拘束されています) – kingkong

+0

何か考えですか?どんな助け? – kingkong

答えて

0

行はスクロールの内側になければならない理由があります。なぜ、スクロールペイン全体にオーバーレイしないのですか?

またはスクロール内のノードを修正するためにバインディングを使用してについては、この記事を参照してください。Always visible when scrolled anchored Node in Java FX 2.0?

0

を私は非常にあなたの質問を理解していれば、私は知りません。私には、あなたの上に緑色の線のノードがあるスクロールペインがありますか?そうであれば...

緑の線がノードの場合は、スクロールペインの表示値(hvalue、i belive)にイベントハンドラを登録できます。たとえば、スクロールペインのスクロール値が変更されるたびに、Green Lineノードの並進位置の更新を行う必要があります。私はレイアウトの専門家ではありません。 JavaFXはまだ私には新しいものです。しかし、私が知っていることから、それはできると思われる。理論的には、これは明らかに可能です。

関連する問題