Главная » Processing » Написание инструментов Processing

1

В этом примере мы рассмотрим создание инструментов Processing. Это небольшие приложения, взаимодействующие с редактором Processing. Вы можете использовать их для вставки кода в определенное место или отображения сообщений. Вы также можете создавать дополнительные окна с помощью библиотеки Java Swing GUI. Именно так сделан инструмент Color Selector.

Приступим

Прежде чем начать писать код, нужно установить шаблон инструмента Processing. В предыдущем примере, Установка шаблона инструментов Processing описано, как это сделать.

Как это делается

Начнем с удаления всего содержимого папки src. Нам не нужен файл HelloTool.java, так как мы собираемся написать свой собственный класс. Выделите папку src в Package Explorer и откройте меню File | New | Class. Имя этого файла должно быть MyTool.

Откройте файл двойным кликом. Наберите в файл следующий код; я объясню его в секции

Как это работает в этом примере.

package be.vormplus.tools;

import processing.app.*; import processing.app.tools.*;

public class MyTool implements Tool { Editor editor;

public void init( Editor _editor )

{

editor = _editor;

}

public String getMenuTitle()

{

return "MyTool";

}

public void run()

{

String templateCode;

templateCode  = "void setup() {\n"; templateCode += "    size( 640, 480 );\n"; templateCode += "    smooth();\n}\n\n"; templateCode += "void draw() {\n";

templateCode += "    background( 0 );\n}";

editor.setText( templateCode );

}

}

Как это работает

Первое, что мы сделали – импортировали несколько классов Processing:

import processing.app.*; import processing.app.tools.*;

Наш класс реализует интерфейс Tool. Это означает, что нам нужно реализовать все функции, которые доступны в этом интерфейсе.

public class MyTool implements Tool { public void init( Editor _editor ) {} public String getMenuTitle() {} public void run() {}

}

В нашем классе мы реализовали следующие методы:

f   Метод init() вызывается при первом запуске окна редактора. Эта функция нужна для того, чтобы объект Processing Editor проходил как параметр для внутреннего объекта Editor для нашего класса.

f   Метод getMenuTitle() возвращает текст, который вы будете видеть в меню

Tools в Processing.

f   Метод run() вызывается, когда вы выбираете инструмент из меню Tools. Здесь вы будете создавать GUI и Swing, если они требуются для вашего инструмента.

В методе run() мы создали String, содержащий простой код Processing. Метод editor.setText() используется для замены всего текста в текущем окне Processing на наш String templateCode.

public void run()

{

String templateCode;

templateCode  = "void setup() {\n"; templateCode += "    size( 640, 480 );\n"; templateCode += "    smooth();\n}\n\n"; templateCode += "void draw() {\n"; templateCode += "    background( 0 );\n}";

editor.setText( templateCode );

}

Когда закончите код, кликните кнопку play во вкладке Ant. Eclipse скомпилирует ваш код и соберет все файлы в нужные папки, чтобы вы могли с легкостью распространять свой инструмент. Также он установит инструмент в папку инструментов скетчбука Processing. когда вы откроете Processing, вы увидите, что ваш инструмент доступен через меню Tools. Когда вы запустите его, нужный код будет вставлен в PDE.

Источник: Ян Вантомм, Processing 2: креативное программирование, перевод с английского Александры Мишутиной, Published by Packt Publishing Ltd., 2012, BIRMINGHAM – MUMBAI.

По теме:

  • Комментарии

1 комментарий

  1. Ай says:

    День добрый .

    Пока живем в плоскости 2Д
    в 3Д не паускают
    либо драйверы не стоят либо что то не легло
    попытка уставит билиотеки в автомате и в ручную не помогают

    все что без билиотек – работает
    как ни странно но уже столько сделано на +Р+
    что и этого хватает пока с избытком

    машина ругаеся так :
    library manager could not download the list of available contributuion

    не живет пока без аннексий и контрибуций как при Брестском мире

    Ладно пока терпим есть
    не менее 20 источников кодов и алгоритмов
    у многих есть просто настоящие конфетки для светомузыки

    по поводу библиотеки МИдим
    вопрос такой
    я вижу что внутри +Р+2.1.1 х64
    стоит встроенная библиотека
    на 100 К.. с хвостиком

    а у разработчика она на на 150 Метров
    там что все звуковые примеры столько много занимают

    и чтобы не качать её из сети
    реально в +Р+2.1.1 версии уже встроены многие библиотеки
    новичкам надо сказать что нет смысла их собирать в сети
    проще идти по тьютору и примерам

    и походить внутри +Р+

    Очень понравились куски и филосовская позиция автора Бинарии
    + чем хорош ПДФ вьювер последней версии
    позволяет сразу копировать куски текста из примеров и вставлять в +Р+

    получается быстрое вхождение суть процесса

    Дарю еще один способ познания программ
    на +Р+
    открываете два одинаковых файла в +Р+ на экране компа
    сразу слева и справа как в Нортоне
    и изменяя правый вариант
    смотрите на левый как на эталон
    не надо держать в памяти все
    а достаточно только одной зоны отладки ….