Одновременная разработка Java и Scala в рамках одного проекта - PullRequest
21 голосов
/ 23 июня 2009

Я хочу использовать Scala Actor Framework при разработке пользовательского интерфейса знакомым способом Swing.

Возможно ли иметь смешанный проект Java - Scala в Eclipse, NetBeans или любой другой IDE?

Ответы [ 7 ]

21 голосов
/ 23 июня 2009

«Официальный» плагин Scala для Eclipse позволяет добавить «природу scala» в любой проект, наряду с java-природой. Это позволяет вам смешивать и сочетать, как вы пожелаете.

Вчера я впервые играл со Scala, используя Eclipse IDE, и он работает очень хорошо.


Кроме того, я только что наткнулся на эту статью: http://www.codecommit.com/blog/scala/joint-compilation-of-scala-and-java-sources

Кажется, что Скалак знает достаточно о Java, чтобы иметь возможность разрешать зависимости от исходного кода Java, фактически не компилируя их. Очень умный.

5 голосов
/ 23 июня 2009

Intellij хорошо поддерживает смешанные проекты Java / Scala. На данный момент поддержка Scala в Intellij кажется мне лучше, чем Scala IDE для Eclipse. (Я давно являюсь пользователем Eclipse, недавно пробовал Intellij по рекомендации некоторых других кодировщиков Scala).

2 голосов
/ 01 февраля 2011

Смешивание JAVA (Netbeans GUI-Builder) и Scala-Swing:

Я только что создал новый JPanel с GUI-Builder, некоторыми элементами управления и простой логикой.

Затем создал объект scala, как показано в учебниках по Scala-Swing:

object MySampleView extends Frame { title = "SomeTitle" ...

Затем я добавил новый JPanel к содержимому:

   contents = new Component { override lazy val peer = new MySampleJPanel() }

При компиляции проекта я вижу каждое изменение JPanel в GUI-Builder Cool.

1 голос
/ 03 июля 2009

Я успешно смешал Java и Scala в своем приложении. Он работает в Goggle App Engine, и я использую Spring MVC для пользовательского интерфейса. (будет портировать на Лифт позже)

Плагины для Intellij - отличная помощь. Хотя это все еще первые дни, и иногда возникают проблемы. (например, компилятор плагинов Scala, похоже, не слишком любит JDO-классы Java ... есть обходной путь, и я уверен, что эта ошибка скоро будет исправлена)

Единственное, что я нахожу немного утомительным в миксе - это работа с API-интерфейсами Java, которые возвращают класс Java-коллекции в Scala. Это очень неуклюже, и вам придется прыгать через обручи немного.

1 голос
/ 23 июня 2009

Вы пробовали Scala's Swing? Он очень легкий в том смысле, что у вас всегда есть доступ к базовым классам Swing, но он очень хорошо продуман. Мне было приятно работать - шаблон реакция делает обработку событий намного проще, а структура акторов делает распространение событий намного понятнее, чем использование PropertyChangeSupport

Также вполне возможно использовать его с вашими собственными виджетами Swing.

0 голосов
/ 16 января 2012

Отлично !!! Спасибо, что поделились идеей.

Просто для дополнения, в приведенном ниже коде использовался редактор GUI (я использую плагин WindowBuilder + Eclipse + Scala) для разработки GUI, а затем все остальное можно сделать с помощью Scala. Теперь можно использовать редактор Java Swing GUI и выполнять все программирование в Scala.

import swing._
import event._
object TestApp extends Frame {
def main(args: Array[String]): Unit = {
    title = "Scala Swing Test App"
    val gui = new MyTestPanel() // a JPanel class from the GUI Editor
    val button = new Button {override lazy val peer = gui.getBtnMyButton()}
            // getBtnMyButton() is generated in the Gui Editor (Expose Component)
    contents = new Component{ override lazy val peer = gui }
    this.listenTo(button)
    reactions += {
        case ButtonClicked(b) => println("BUTTON CLICK.")
    }
    this.visible = true
} }

Mvackel

0 голосов
/ 30 июня 2009

Плагины Scala для NetBeans тоже работают хорошо. С разработкой Swing стало проще с NetBeans, это может быть именно то, что вы ищете:)

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