У меня есть простая Java-программа, которая позволяет пользователю рисовать прямоугольники на JPanel, а затем перемещать их, изменять их размер и удалять их.
Панель рисования реализует MouseListener и MouseMotionListener. Когда событие инициируется, оно проверяет, какой пункт меню выбран (новый прямоугольник, перемещается, изменяет размер или удаляет), и реагирует соответствующим образом.
Когда выбрана опция «изменить размер», методы слушателя делают следующее:
MouseMoved вызывает boolean detectBoundary (). Когда это возвращает true, прямоугольник, которому принадлежит граница, устанавливается как активный прямоугольник.
MouseDragged вызывает void moveBoundary, который перемещает обнаруженную границу в направлении жеста перетаскивания.
Теперь то, что я ищу, это способ сделать границу, которая будет сдвинута, выделенной. Я могу перекрасить весь прямоугольник в более толстые линии или в другой цвет, что я делаю сейчас, когда устанавливаю данный прямоугольник в качестве активного, но это не то, что я хочу. Я хотел бы перекрасить только одну границу.
Метод setBorder, который может обрабатывать метод createMatteBorder BorderFactory, может показаться идеальным для этих целей, но я не смог найти способ заставить это работать.
У кого-нибудь есть идеи, как мне это сделать?
Все предложения будут с благодарностью.