ImageJ: Слушатель в инструменте выбора точки

Я хочу настроить собственную программу, используя ImageJ в качестве библиотеки. Так что это не будет плагином.

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

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

Чтобы обеспечить легкое и быстрое использование, я хочу, чтобы действие происходило сразу после выбора точки. Поэтому я хочу зарегистрировать MouseListener. Мой вопрос: где код, который реализует инструмент выбора точки? И где я могу зарегистрировать свой MouseListener?

Заранее спасибо.


person user2599141    schedule 20.07.2013    source источник
comment
Что вы сделали до сих пор? Здесь вы должны продемонстрировать значительные усилия и некоторое понимание проблемы. Обычно такие вопросы, как «Как я могу...?» здесь не будет встречено с большим вниманием.   -  person likeitlikeit    schedule 21.07.2013
comment
Я реализовал MouseListener, все действия, которые должны происходить при щелчке мышью по изображению, графический интерфейс для отображения результатов измерений. Я не хотел вставлять какой-либо код, потому что это вообще не помогло бы. Мне просто нужна подсказка, где я могу зарегистрировать Listener в среде ImageJ. Также я просмотрел весь класс панели инструментов, предоставив свой ImageJ и все инструменты. Я также попробовал класс Listener, предоставленный ImageJ, но он отображает только события мыши на панели инструментов.   -  person user2599141    schedule 21.07.2013
comment
Вы видели это?   -  person likeitlikeit    schedule 21.07.2013
comment
Спасибо! Я видел это раньше, но я не обращал на это пристального внимания.   -  person user2599141    schedule 22.07.2013


Ответы (1)


Спасибо последнему комментарию! Я видел это раньше, но я не обращал на это пристального внимания.

Для всех, кто сталкивается с этой проблемой:

Метод show(String) в классе ImagePlus создает новый StackWindow. Сразу после этого вы можете использовать:

 for(Object o: win.getComponents()){

(Или только win.getComponents()[0], если вы знаете, что будет только один.

Первый объект, который я получаю, — это ImageCanvas. Таким образом, вы можете передать свой объект o в ImageCanvas и добавить туда свой MouseListener. Например, с анонимным классом. Или, возможно, измените конструктор ImagePlus, чтобы при необходимости предоставить определенный MouseListener, если вы пишете свою собственную автономную программу и просто используете ImageJ в качестве Bib.

person user2599141    schedule 21.07.2013