Я новичок в Java, так что это, вероятно, довольно просто, но я не уверен, как заставить его работать.
По сути, у меня есть класс, который я использую для рисования сетки, которая расширяет JPanel. Я поместил этот класс в окно, внутри JScrollPane. Прокрутка работает так, как я хочу, за исключением того, что рисунок внутри моего класса не обновляется после прокрутки окна. Это действительно обновляет, если окно изменено, хотя.
Я думаю, что должен использовать события / слушателей или что-то в этом роде, но я не уверен, с чего начать.
edit: также, когда я открываю одно из меню, и оно перекрывается на чертеже, область, которая была покрыта меню, не обновляется.
Хорошо, давайте попробуем еще раз:
У меня есть класс под названием ничья. Тогда у меня есть GridBagLayout из розыгрышей. Это создает сетку мне нужно. У меня есть объект, перемещающийся по сетке, поэтому я могу обновить сетку, не вычисляя прямоугольники, которые должны быть обновлены.
Тогда эта сетка находится внутри JScrollPane, которая не является подклассом. Я использую pack (), когда создаю свое окно, но дело в том, что окно может быть больше, чем позволяет разрешение, поэтому мне нужно, чтобы его можно было прокручивать. У меня есть свиток, но он не обновляет изображение, когда я его использую. Однако изменение размера окна обновляет его.
То, что я хочу, - это способ перерисовать все мое окно, когда я нажимаю JScrollPane. И теперь мне также нужно перерисовать все это (или некоторые части, я увижу это позже), как только я получу доступ к меню, потому что рисованные части сетки под меню не обновляются.
Это лучший способ, которым я могу это описать.