Подтвердить что ты не робот

Одновременная разработка Java и Scala в рамках одного проекта

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

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

4b9b3361

Ответ 1

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

Ответ 2

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

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


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

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

Ответ 3

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

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

Затем создан объект scala, как показано в Scala -Swing tutorials:

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

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

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

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

Ответ 4

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

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

Ответ 5

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

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

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

Ответ 6

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

Ответ 7

Отлично!!! Спасибо, что разделили эту идею.

В дополнение к этому в коде ниже использовался графический редактор (я использую WindowBuilder + Eclipse + Scala Plugin) для создания графического интерфейса, а затем все остальное можно сделать с помощью Scala. Теперь можно использовать редактор графического интерфейса Java Swing и выполнить все программирование в 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