スクロールバーを含むプログラムに取り組んでいます。プログラムでは、500px のスクロール可能なフィールドを取得し、スクロールバーを 50px ごとにスクロールさせたいと考えています。だから私は10ページを取得します。ページの 50% を表示したくありません。一度に 1 ページだけ表示したいのです。では、スクロールのサイズを変更するにはどうすればよいですか?
または、これを達成するためのより良い方法はありますか?
はじめまして、よろしくお願いします
スクロールバーを含むプログラムに取り組んでいます。プログラムでは、500px のスクロール可能なフィールドを取得し、スクロールバーを 50px ごとにスクロールさせたいと考えています。だから私は10ページを取得します。ページの 50% を表示したくありません。一度に 1 ページだけ表示したいのです。では、スクロールのサイズを変更するにはどうすればよいですか?
または、これを達成するためのより良い方法はありますか?
はじめまして、よろしくお願いします
スクロール可能フィールドにインターフェースを実装させることができます。このScrollable
インターフェースは、スクロール フィールドがスクロールする距離を決定するために使用する 2 つのメソッドgetScrollableUnitIncrement
(スクロール ホイール、スクロール矢印getScrollableBlockIncrement
のクリック) と (スクロールバーのトラックのクリック) を宣言します。
本当に50だけにしたい場合は、次を使用できます
jScrollPane.getVerticalScrollBar().setUnitIncrement(50);
jScrollPane.getVerticalScrollBar().setBlockIncrement(50);
ただし、ユーザーがページの半分が表示されるまでスクロールバーをドラッグすると (この動作を簡単に変更できるとは思いません)、スクロールは依然として 50 ピクセルジャンプし、次のページの半分を表示します... を実装するScrollable
と、現在表示されているものに基づいてスクロール量を決定できます。
あなたとこれを試してみてくださいJScrollPane
scrollPane.getVerticalScrollBar().setUnitIncrement(50);
JScrollPane
これは、ボタンを上下にスクロールするときに役立ちますが、マウスでノブを動かすとページの半分を表示できます。
別の方法として、ノブの位置を監視しAdjustmentListener
、scrollPane 値を手動でシフトすることを提案できます。
scrollPane.getVerticalScrollBar().addAdjustmentListener(new AdjustmentListener()
{
public void adjustmentValueChanged(AdjustmentEvent e)
{
scrollPane.getVerticalScrollBar().setValue(e.getValue() / 50 * 50);
}
});
しかし、それは良い考えではないと思います。誰かがより良い方法を提案するかもしれません。