- Я хочу, чтобы у компонента была по умолчанию «предпочтительную» ширину. Jscrollpane .
Код: Выделить всё
import javax.swing.BorderFactory;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.SwingUtilities;
import javax.swing.WindowConstants;
import java.awt.Color;
import java.awt.Dimension;
public class ScrollPaneDemo {
public static void main(String[] args) {
SwingUtilities.invokeLater(ScrollPaneDemo::launch);
}
private static void launch() {
JFrame frame = new JFrame("ScrollPane Demo");
frame.setContentPane(createScrollPane());
frame.setLocationRelativeTo(null);
frame.pack();
frame.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
frame.setVisible(true);
}
private static JScrollPane createScrollPane() {
JScrollPane scrollPane = new JScrollPane(createScrollablePanel());
scrollPane.setHorizontalScrollBarPolicy(JScrollPane.HORIZONTAL_SCROLLBAR_NEVER);
return scrollPane;
}
private static JPanel createScrollablePanel() {
JPanel panel = new JPanel();
panel.setBorder(BorderFactory.createLineBorder(Color.RED, 3));
panel.setPreferredSize(new Dimension(250, 150));
return panel;
}
}

Подробнее здесь: https://stackoverflow.com/questions/796 ... scrollpane