У меня есть JPanel
, содержащийся внутри JScrollPane
, и каждый раз, когда я масштабирую, полосы прокрутки не меняют свой размер, пока я не нажму на них. Я не могу понять, почему он это делает, у кого-нибудь есть идеи?
Вот мой код:
zoomer = new JSlider();
zoomer.addChangeListener(new ChangeListener() {
public void stateChanged(ChangeEvent e) {
getSelectedSpace().setZoomFactor(Math.pow(2, (double) zoomer.getValue()/500));
getSelectedPane().revalidate();
getSelectedPane().setDoubleBuffered(true);
getSelectedPane().getHorizontalScrollBar().revalidate();
getSelectedPane().getVerticalScrollBar().revalidate();
getSelectedSpace().repaint();
}
});
Для пояснения, zoomer - это JSlider
, чем управляет масштабированием, getSelectedPane()
- это метод, который я создал для быстрого доступа к панели прокрутки (сама она содержится в области вкладок), а getSelectedSpace()
- это метод, который я создал для быстрого доступа к панели расширений рабочей области, содержащейся в области прокрутки. Метод setZoomFactor
регулирует значение масштабирования на панели в области прокрутки.