Одновременная разработка Java и Scala в рамках одного проекта
Я хочу использовать Scala Actor Framework, пока я разрабатываю пользовательский интерфейс знакомым способом Swing.
Возможно ли иметь смешанный проект Java - Scala в Eclipse, NetBeans или любой другой среде IDE?
Ответы
Ответ 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