2016-10-19 2 views

答えて

1

スクロール区画を所定のピクセル数だけ移動させてから、画像サイズを取得し、hvalueまたはvvalueで移動する必要があるかどうかを計算することを意味しています。垂直方向の変更のための

int pixelsH = 45; int change = pixelsH/scrollpane.getWidth(); scrollpane.setHvalue(scrollpane.getHValue() + change);

同じコンセプト。

3

これらのプロパティーは役に立たないわけではありません。正しく使用する方法を知る必要があります。 (あなたが直接絶対値を指定できるようにすることはメソッドはありません。)ScrollBarを想定し

あなたはこれが

scrollValue = (topLeft * scrollMax)/(contentSize - viewportSize) 
      = topLeft/(contentSize - viewportSize) 

hvalue = topLeftX/(contentWidth - viewportWidth) 
vvalue = topLeftY/(contentHeight - viewportHeight) 

topLeftXとして再定式化することができ、以下の式

topLeft/(contentSize - viewportSize) = scrollValue/scrollMax 

を知って、表示されていますtopLeftYは、ビューポートの左上隅にあるピクセルのx座標とy座標です。ビューポートのサイズを確認するには、viewportBoundsを使用します。

+1

あなたは可能性も(私は信じて)セット(またはバインド)スクロール区画の 'hmax'' contentWidth-viewportWidth'へ値をピクセル座標にしたい場合は、 '' vmax''と同じようにします。 –

0

setHvaluesetVvalueを使用して、スクロールパネルを配置します。

値は、例えばのためにNodes

に対して計算することができます。

double nodeX = dummyNode.getBoundsInParent().getMaxX(); double nodeY = dummyNode.getBoundsInParent().getMaxY(); double scrollPaneWidth = dummyScrollPane.getContent().getBoundsInLocal().getWidth() double scrollPaneHeight = dummyScrollPane.getContent().getBoundsInLocal().getHeight() dummyScrollPane.setVvalue(nodeY/height); dummyScrollPane.setHvalue(nodeX/width);

+1

私は、可視領域を考慮していないので、これが正しい結果を生み出すのではないかと疑います。さらに、コードのどこかで変数名の一部を変更することにしたようです。 – fabian

+0

はい@fabian、私はスニペットの正しい変数名を指摘してくれてありがとう。これ以外にも、プログラムでスクロールして計算された位置に移動するという質問に答えます。 – tbf

関連する問題