JScrollBarをコンストラクタで長い値にする方法を教えてください。

したがって、次のようなJScrollBarのコンストラクタがあります。

public JScrollBar(int orientation, int value, int extent, int min, int max) 

JScrollBarを実装するには、データのサイズがintの制限を超える可能性があるため、int値を長くする必要があります。

public JScrollBar(int orientation, long value, long extent, long min, long max) 

JScrollBarのコンストラクタを実装する最良の方法は何ですか?JScrollBarを完全にリメイクするのは、それらの値がどこにあるからですか?あるいはこれを行うもっと良い方法があります。

NOTE: If I do completely rewrite JscrollBar I will also have to overwrite swing.DefaultBoundedRangeModel too because it also takes an int. This doesn't seem to be the best approach so does anyone have any better ideas?

2

2 答え

あるレベルでは、実際の変更を適切に検出するために画面解像度を使い果たすことになります。コンテンツをスクロールすると、スクロールバーは移動しません。または、ユーザは、スクロールバーを移動して新たな領域に移動させ、方向を変える。

32ビットの整数は20億の正の数です。画面解像度が1,000ピクセルであっても、スクロールバーのピクセル移動は、スクロールしている場所(ズームが1:1の場合)のデスティネーションに2,147,483ピクセルを占めるため、ユーザーはスクロールバーを制御できません。だから私はおそらくどのレベルでスクロールして滑らかになるように、ズームレベルをスクロールバーにマップする方法を考えるだろう。

他のオプションは、より大きな画像のどこにあるのかを表示した正方形の小さな画像を表示した後、拡大表示した概要/詳細コントロールを使用することです。上の画像の画像をドラッグして、その画像を詳細画像に表示することができます。そこにある問題では、それを1ピクセルだけ動かすと200万画素の動きがありますので、小さなズームスケールで大きな画像を移動するのは非常に間違っています。しかし、ディテールビューで手をドラッグすると、方向が変わっていない小さな動きに使用できます。その側面はJScrollBarを再実装する問題を解決し、おそらくより良い選択肢になります。

3
追加された
私はデータの束にバッファリングしているので、範囲は1〜100であり、位置は56です。スクロールバーをクリックすると、スクロールバーがどこに行くのかのグラフィカルな表現ではなく、位置57になります...私はそれが意味をなさないことを望みますか?
追加された 著者 Grammin,
私は各スクロールバーのピクセル移動が2mpを表すことに同意しますが、右端のスクロール矢印をクリックし、スクロールバーを移動せずにデータを移動できます。そして実際のスクロールバーを動かさずにスクロールバーの値を調整します。
追加された 著者 Grammin,
そうだね、その点をしてくれてありがとう
追加された 著者 Grammin,
ズーム可能なコントロールマッピングを作成しようとしているようですが、ちょっと変わった方法です。スクロールバーを使用して1000の位置にある場合(スクロールバーの幅が1000ピクセル以上の場合)、スクロールバーがスクロールバーの一番右端まで表示されている場合、サムが移動する各ピクセルは200万ピクセルになります。それ以外の場合は、左から右の画像全体をナビゲートすることはできません。私は実用性から、ズームインとズームアウトという概念を作り、ズームレベルでスクロールして空間を効果的にナビゲートする必要があると思います。
追加された 著者 chubbsondubs,
そうです、あなたは2つのスピードを持っています:テレポートと歩行。あなたが描いているような大きさの空間に対する幾分極端なナビゲーション。 :-)私の主張は、スクロールの解像度を上げることはスペースをもっとうまく操作するのに役立たないということです。
追加された 著者 chubbsondubs,
私は今あなたがしていることに興味を持った。これらの数値がどれほど大きくなっているかについて私が考えるほど、あなたが表示しようとしているものを推測しようとしています。衛星画像かもしれないと思っています。
追加された 著者 chubbsondubs,

私はおそらく JScrollBar をサブクラス化し、 setValue をオーバーライドし、それに応じて値を調整(スケール)しようとします。

1
追加された