Java Swing редактируемый рисунок линии - PullRequest
2 голосов
/ 08 октября 2011

Я пишу зигзагообразный ящик в качестве школьного задания. В основном ожидается, что вы сможете рисовать зигзаги на холсте, уметь перемещать вершины зигзагов и уметь перемещать весь зигзаг. Также мы можем изменить цвет и толщину зигзагов.

Мне удалось нарисовать зигзаги, левый щелчок начинается, а последующие левые щелчки продолжают зигзаг, а правый щелчок завершает его. Таким образом, я могу нарисовать несколько зигзагов. Что я не могу сделать, так это как я могу сделать вершины зигзагов подвижными? Я сохраняю координаты точки в массиве типа mypoint, который состоит из значений x, y и глубины. Я рисую всю картину на холсте, который является расширенным классом JPanel. в методе paintcomponent я вызываю метод drawline для каждой вершины в списке. Поскольку это просто картины, я не могу понять, как я обнаружу, что пользователь нажимает на вершину. Могу ли я иметь маленькие кнопки, такие как контроллеры, когда нажата будет делать работу, которую я хочу. я пытался использовать метки и стандартные кнопки, но я не могу расположить их должным образом и они не слишком велики, чтобы быть просто обработчиками для вершин.

У вас есть предложения по этим вопросам?

1 Ответ

2 голосов
/ 08 октября 2011

У вас может быть два режима работы, которые пользователь должен выбрать, выбрав переключатель, например: один для рисования зигзагов, а другой для выбора вершин.

Пока выбран режим «зигзаг», щелчки мыши позволяют рисовать зигзаги, как вы уже реализовали. Если выбран режим «Выбор вершины», то при щелчке мыши может быть найдена вершина, расстояние от которой до точки нажатия составляет менее 3 пикселей, а перетаскивание мыши может переместить вершину из ее исходного положения, следуя указателю мыши.

Вы можете сообщить пользователю о выбранной вершине, отобразив небольшой сквер вокруг вершины.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...