忍者ブログ

マインのブログ

マインが何かを気まぐれに書く日記です。

[PR]

カテゴリー:

2024/04/26(Fri)08:02

×

[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。

No.|CommentTrackback

スクロールの必要がないときにスクロールバーをサイズいっぱいにする

カテゴリー:プログラムとか

2010/01/06(Wed)00:31

えー、以前スクロールの有無でスクロールバーを無効/有効を切り替える方法を書きました。
今回はこれをちょっと改造してスクロールバーをサイズいっぱいにする(見せかける)方法です。
これはWord2007の垂直方向のスクロールバーみたいなイメージです。

その方法ですが、スクロールペインのスクロールバーに追加したAdjustmentListenerで
スクロールの有無を判定します。
スクロールの有無はJScrollBar.getMaximum()とJScrollBar.getVisibleAmount()を見ます。
maximumとvisibleAmountの値が同じ時はスクロールの必要がないときです。
maximum>visibleAmountのときはスクロールが必要な時です。
もし、スクロールが必要ない時はスクロールバーの最大値を+1してやります。
最大値の設定方法はJScrollBar.setMaximum(int)で出来ます。
ノブをドラッグすると若干移動してしまいますが、放すと元に戻ります。
また、上下右左のボタンを押してもスクロールしません。

前作ったサンプルプログラムを改造したのでSSを置きます。
MineScrollPaneSS1_v2.JPG
スクロールが必要ないとき

MineScrollPaneSS2_v2.JPG
スクロールが必要なとき

Jarファイル、ソース、Javadocは下です。
あまりテストしてないので、ちゃんと動けばいいんですけど・・・。
サンプルプログラム
ソース
Javadoc

参考までに:「スクロールの有無でスクロールバーの無効/有効を切り替える」に関する記事

以下、スクロールバーの挙動以外の変更点です。
どちらも従来のsetHorizontalScrollBarPolicyとsetVerticalScrollBarPolicyの挙動にあわせる変更です。
・独自のスクロールバーポリシーをセットした時にバウンドプロパティを通知するように変更
・ポリシーを変更した時にスクロールペインを再描画するように変更

拍手[0回]

PR

No.1896|Comment(0)Trackback()

Comment

Comment Write
Name
Title
Mail
URL

Pass Vodafone絵文字 i-mode絵文字 Ezweb絵文字 

Trackback

URL :