1

スクロールバーを含むプログラムに取り組んでいます。プログラムでは、500px のスクロール可能なフィールドを取得し、スクロールバーを 50px ごとにスクロールさせたいと考えています。だから私は10ページを取得します。ページの 50% を表示したくありません。一度に 1 ページだけ表示したいのです。では、スクロールのサイズを変更するにはどうすればよいですか?

または、これを達成するためのより良い方法はありますか?

はじめまして、よろしくお願いします

4

2 に答える 2

4

スクロール可能フィールドにインターフェースを実装させることができます。このScrollableインターフェースは、スクロール フィールドがスクロールする距離を決定するために使用する 2 つのメソッドgetScrollableUnitIncrement(スクロール ホイール、スクロール矢印getScrollableBlockIncrementのクリック) と (スクロールバーのトラックのクリック) を宣言します。

本当に50だけにしたい場合は、次を使用できます

jScrollPane.getVerticalScrollBar().setUnitIncrement(50);
jScrollPane.getVerticalScrollBar().setBlockIncrement(50);

ただし、ユーザーがページの半分が表示されるまでスクロールバーをドラッグすると (この動作を簡単に変更できるとは思いません)、スクロールは依然として 50 ピクセルジャンプし、次のページの半分を表示します... を実装するScrollableと、現在表示されているものに基づいてスクロール量を決定できます。

于 2012-08-13T14:42:22.603 に答える
1

あなたとこれを試してみてください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);
        }
    });

しかし、それは良い考えではないと思います。誰かがより良い方法を提案するかもしれません。

于 2012-08-13T14:36:13.773 に答える