Я просто не могу понять это правильно. У меня есть ползунок для увеличения размера JPanel (используется в качестве холста для рисования).
Всякий раз, когда JPanel получает событие, я изменяю его размер с помощью setBounds(), и я вижу, как он изменяется на долю секунды, но следующая Paint или что-то еще возвращает его к исходному размеру, заданному свойством предпочтительного размера ползунка.
public class ShapesMainFrame extends JFrame {
private PaintCanvas paintCanvas;
public ShapesMainFrame() {
[...]
JScrollPane scrollPane = new JScrollPane(paintCanvas);
scrollPane.setPreferredSize(new Dimension(1,600));
add(scrollPane, BorderLayout.CENTER);
pack();
}
}
public class PaintCanvas extends JPanel {
[...]
public void setScale(int value) {
setSize(1000,1000);
}
}
Итак, когда я пытаюсь изменить размер JPanel на большое значение, он должен изменить размер, и полосы прокрутки должны появиться правильно? Ну, высота остается той же 600px, как я установил в начале.