Выделять полигоны с помощью мыши

Я очень плохо знаком с Java-свингом. Мне нужна помощь для моего задания. мой вопрос, у меня есть несколько полигонов на моем компоненте. когда я вошел в многоугольник, он должен выделиться (значит, заполнен каким-то цветом). когда я перехожу к следующему многоугольнику, он должен быть выделен, а предыдущий должен быть удален (т.е. нормальное состояние). Я нашел несколько примеров, но в них используются события "мышиной". но мой другой. поэтому, пожалуйста, помогите мне с этим вопросом или опубликуйте здесь несколько примеров кодов, связанных с этим вопросом.... очень срочно..........

Спасибо.......

2 ответа

Решение

Прежде всего, что вы пробовали до сих пор? Вы узнаете больше, и мы лучше узнаем, где вы находитесь, если будем работать с вашим кодом. Прошли ли вы разделы MouseListener/MouseMotionListener учебных пособий по Swing? Если нет, и если у вас еще ничего не написано, я предлагаю вам просмотреть учебные пособия и посмотреть на использование MouseMotionListener. Вы не хотите слушать mouseEntered, но, скорее всего, mouseMoved. Пример псевдокода может быть:

in MouseMotionListener or MouseAdapter
   mouseMoved method
      get position of mouse pointer via the MouseEvent parameter.
      For loop through list of Polygons 
         If mouse inside of polygon, highlight it.
         Else, un-highlight it.
      End for loop
   End of mouseMoved method.
end MouseMotionListener or MouseAdapter

Мое последнее предложение состоит в том, чтобы вы избавились от любых заявлений о срочности в ваших вопросах здесь, поскольку все, что это сделает, будет раздражать людей, поскольку это предполагает, что вы думаете, что ваш вопрос более важен, чем любые другие здесь. Поверь мне, это не так, и срочность твоя, а не наша, так что лучше держи это при себе. Кроме того, мы все добровольцы, которые помогают, потому что мы любим программировать и помогать другим, и лучше не заставлять добровольцев здесь испытывать давление. Просто сказать для дальнейшего использования, так как соблюдение этого правила поможет вам получить лучшую и более быструю помощь.

Много удачи и снова добро пожаловать в stackru.

java.awt.Polygon имеет contains(double x, double y) метод, который возвращает true, если координаты мыши x,y находятся внутри многоугольника.

Координаты (x,y) получены в результате реализации MouseMotionListener на контейнере, где вы рисуете свои фигуры и в реализованном public void mouseMoved(MouseEvent e) метод у вас есть e.getX() а также e.getY() чтобы получить координаты и проверить, есть ли они в вашем полигоне (ах).

Другие вопросы по тегам