Мои полосы прокрутки не будут регулироваться при увеличении, как мне их сделать? - PullRequest
0 голосов
/ 01 мая 2020

У меня есть 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 регулирует значение масштабирования на панели в области прокрутки.

...