JPanel を「パッキング」してスクロール バーを許可する適切な方法に関して、かなりの問題があります。
コードを少し省略しましたが、提供されているもので十分だと思います。
問題は、JScrollBar が表示されないか、対話できないことです (スクロール バーを常に垂直バーに設定した場合)。
これを描いた画像は次のとおりです。
![スクロールバーがありません][1]
ProjectPanel (JPanel を拡張) は固定サイズであり、ご覧のとおり、表示されているビュー ポートよりも遠くまで拡張されます。ProjectPanels も次のように遷移できるため、JPanel (ProjectSelector) の計算された高さを取得する方法はありません。
![グリッドとして埋める必要がある][2]
誰かがこれを行う方法についての洞察を提供するのを助けることができれば、それは素晴らしいことです. 今のところ、私は外部 API を使用しないようにしたいと考えています。
質問:
コンポーネントを追加すると拡張できるように、優先サイズの高さを「柔軟」に設定するにはどうすればよいですか? それが理想的でない/不可能である場合、JScrollPane が JPanel のすべてのコンポーネントを効率的に表示できるようにするにはどうすればよいでしょうか?