LINUX.ORG.RU

GUI в IDE, а остальной код на Clojure, как?

 , , ,


3

4

Подскажите пожалуйста, можно ли использовать визуальные редакторы графического интерфейса предназначенные для Java (такие как IntelliJ IDEA например) для построения GUI, но логику приложения и остальной код писать на Clojure?

Мне хотя бы простейший пример: вот создали в GUI редакторе кнопку, сохранили все, а уже на Сlojure создали обработчик события для этой кнопки. Т.е. я не хочу руками в коде этот графический интерфейс создавать, а создать его в IDE, а уже потом с ним взаимодействовать из Clojure. Как то так, ну или хотя бы может в интернете где то об этом написано, я не нашел(

Буду очень благодарен за помощь, спасибо.

Ответ на: комментарий от anonymous

прошу прощения, Swing или JavaFx, в общем для десктопа чего нибудь

elf80lvl
() автор топика

Можно, разрешаю

anonymous
()

Да, можно. В IDE делаешь формочки и пакуешь их в jar'ку. Потом эту jar'ку инсталлишь в свой maven репозиторий. Я это делаю этим: https://github.com/kumarshantanu/lein-localrepo

А дальше используешь формочки как обычные Java классы.

Вот тебе пример:

https://github.com/Norgat/GSample - Проект для IDEA (13.1.3 у меня) с формой. https://github.com/Norgat/GSampleSample - Его использование

Артефакт либы я загружаю в мавен так: lein localrepo install .\GLib.jar my/GLib 1

У меня выглядит оно вот так в итоге: http://pbrd.co/1qiAp1C

Norgat ★★★★★
()
Ответ на: комментарий от Norgat

Спасибо огромное! А на Clojure еще пример кода (например обработка события нажатия кнопки) можешь пожалуйста выложить?

elf80lvl
() автор топика
Ответ на: комментарий от elf80lvl

А на Clojure еще пример кода (например обработка события нажатия кнопки) можешь пожалуйста выложить?

Допиливать свой пример сейчас лень. Глянь тут: https://github.com/quil/quil/blob/master/src/quil/applet.clj#L56

Там используется java.awt.event.WindowListener (http://docs.oracle.com/javase/6/docs/api/java/awt/event/WindowListener.html) и перегружаются методы соотв. По факту, там везде, кроме windowClosing пустые обработчики подсовываются. Ну и потом вызывается .addWindowListener у нужного JFrame.

Norgat ★★★★★
()

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

См. https://github.com/daveray/seesaw

Kostafey
()
27 июля 2014 г.
Ответ на: комментарий от anonymous

общаться ли с троллями анонимусами?

пиши в машинных кодах тогда уж чо)

elf80lvl
() автор топика
Ответ на: комментарий от Kostafey

ТС именно этого и хочет. Иначе бы ему не понадобились обработчики событий на скобкоте.

anonymous
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.