No właśnie. Przydałaby mi się metoda JComponent.setPreferredWidth(). Problem w tym, że taka metoda nie istnieje.

Co chcę zrobić? Umieściłem panel wewnątrz JScrollPane. Chcę, żeby zawartość panelu dopasowała swój wymiar do JScrollPane w poziomie, natomiast w pionie chcę pozostawić ustalenie rozmiaru menedżerowi rozkładu panelu tak, aby w odpowiednim momencie pojawił się pionowy pasek przewijania. Niestety:

  • Jeśli nie ustawię preferowanych rozmiarów panelu, nie dopasowuje on swoich wymiarów do JScrollPane'a.
  • Jeśli użyję metody setPreferredSize() za każdym razem po zmianie rozmiaru komponentu JScrollPane, wtedy panel będzie mi się ściskać zarówno w poziomie, jak i w pionie, co prowadzi do tego, że narzucona wysokość panelu uniemożliwia przewijanie go w pionie - komponenty w panelu albo kurczą się, albo po prostu uciekają za dolną krawędzią.

W jaki sposób mogę ustalić wyłącznie preferowaną szerokość panelu?