Я работаю над очень простым приложением для отображения разума, и я использую JPanel для рисования структуры карты разума. Узлами карты разума являются круги, и если вы пишете в узле, структура расширяется в этом направлении. Я поместил свой JPanel в JScrollPane, но моя проблема в том, что я могу только расширить его вниз или вправо, но он должен расширяться и влево, и вверх. Когда моя JScrollPane должна расширяться в «отрицательных направлениях» вверх или влево, я попытался вычислить, сколько координат я сдвигаю, а не перерисовывать всю графику, изменяя координаты x и y всего, соответственно. Но он все еще не работал, он рисовал ту часть, которая видна правильно, но затем, когда я прокручивался вниз, остальная часть моего рисунка исчезла.Как развернуть jScrollPane во всех четырех направлениях?
Надеюсь, что для этого есть решение, потому что я искал часы и не нашел ничего полезного, и потому что я не могу придумать другого способа решить эту проблему. Спасибо за помощь! :)
Спасибо! Возможно, я не мог правильно объяснить свою проблему, но я действительно сделал, что вы написали! Моя ошибка заключалась в том, что я вычислил новые координаты в графическом классе, поэтому после того, как был вызван revalidate и repait. Я даже не знаю, почему ... это была такая глупость! :) Но простая копия и вставка решили проблему, поэтому спасибо за ваш ответ! :) –
@ DobóAnna 'Я вычислил новые координаты в графическом классе, поэтому после revalidate и repait был вызван.' Это правильно. Вы должны вычислить координаты в графическом классе. Затем класс должен ссылаться на revalidate() и repaint() на себя. Ваш код приложения НЕ должен ссылаться на revalidate() и repaint(). – camickr
О, я думал, я не должен ставить revalidate() и repaint() в графическом классе! Почему это неправильно, что мое приложение называет эти методы? Я довольно новичок в этой теме, так что извините, если это звучит как глупый вопрос, но то, что нажата кнопка, например, и это событие, я хочу перерисовать JPanel, чем перерисовка должна быть в actionlistener, не так ли? –