なーんか意外にネット軽いですねー。
年明けてもう30分以上たちますからねー。
ということで、
明けましておめでとうございます。
今年もよろしくお願いします。
えーと、前の日記を書いてからちょろちょろとプログラムを組んでました。
今回やってたのはスクロールペインのちょっとした改造みたいなことやってました。
やってたことは、スクロールの必要がない場合、バーは無効(不活性、非活性)になる、というやつ。
IEやEclipseではよくあることですが、JScrollPaneではスクロールバーの表示ポリシーは
・必要に応じて表示する
・常に表示しない
・常に表示する
の3つしかないです。
なので、そのまま使っただけではIEやEclipseみたいなことが出来ないわけです。
で、スクロールの有無によってスクロールバーの有効・無効の切り替えの方法ですが、
JScrollPaneのスクロールバー(getHorizontalScrollBar()とgetVerticalScrollBar()で取得)に
AdjustmentListenerを設定して、それば呼び出されるたびにスクロールバーの
状態を見て有効・無効を切り替えます。
スクロールの有無はJScrollBar.getMaximum()とJScrollBar.getVisibleAmount()を見ます。
maximumとvisibleAmountの値が同じ時はスクロールの必要がないときです。
maximum>visibleAmountのときはスクロールが必要な時です。
その判定をJScrollBar.setVisible()で有効・無効を切り替えます。
それでプログラムを組んでみました。
えと、名前が変なのは無視してください。
一応、マインなのでJの代わりにMineを付けてみただけです。
スクロールが必要ないとき
スクロールが必要な時
で、以下、Jarファイル、ソースファイル、Javadocです。
サンプルとして実行してみたい時はJarファイルをダウンロードして実行してください。
そのプログラムのソースがzipになってます。
一応、Javadocも作ってみました。
参考までに
サンプルプログラム
ソース
Javadoc
なお、このプログラム、ソースなどを使用して起きたいかなる不具合等については
私マインは一切の責任を負いません。
自己責任でお願いします。
まあ、ちょっとした意見とかなら受け付けますけど。
あと、ソースはかなりテキトーに作ってるんで最善のものかは知りません。
あしからず。
[0回]
PR