Я хочу использовать Scala Actor Framework, пока я разрабатываю пользовательский интерфейс знакомым способом Swing.
Возможно ли иметь смешанный проект Java - Scala в Eclipse, NetBeans или любой другой среде IDE?
Я хочу использовать Scala Actor Framework, пока я разрабатываю пользовательский интерфейс знакомым способом Swing.
Возможно ли иметь смешанный проект Java - Scala в Eclipse, NetBeans или любой другой среде IDE?
Intellij отлично справляется с поддержкой смешанных проектов Java/ Scala. В настоящий момент поддержка Scala в Intellij мне кажется лучше, чем Scala IDE для Eclipse. (Я давно пользовался Eclipse, недавно пробовал Intellij по рекомендации некоторых других кодеров Scala).
"Официальный" плагин Scala для Eclipse позволяет добавлять "scala характер" к любому проекту, наряду с природой java. Это позволяет вам смешивать и сопоставлять, как бы вы ни пожелали.
Я играл с Scala в первый раз прошлой ночью, используя Eclipse IDE, и он работает очень хорошо.
Кроме того, я просто столкнулся с этой статьей: http://www.codecommit.com/blog/scala/joint-compilation-of-scala-and-java-sources
Похоже, что scalac знает достаточно о java, чтобы иметь возможность разрешать зависимости от источника java, фактически не компилируя их. Очень умный.
Смешивание 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.
Вы пробовали Scala Swing wrapper? Он очень легкий в том смысле, что вы всегда имеете доступ к базовым классам Swing, но это очень хорошо продумано. Мне было приятно работать - шаблон реакций облегчает обработку событий, а структура актера делает распространение событий намного яснее, чем использование PropertyChangeSupport
Совершенно возможно использовать его со своими собственными виджетами Swing.
Я успешно использовал Java и Scala в своем приложении. Он работает в Goggle App Engine, и я использую Spring MVC для пользовательского интерфейса. (порт будет снижаться позже)
Плагины для Intellij - отличная помощь. Хотя это еще рано, и есть случайные проблемы. (например, компилятор Scala плагина не похож на JDO расширенные классы Java слишком много... есть работа, и я уверен, что эта ошибка будет исправлена в ближайшее время).
Единственное, что мне кажется немного утомительным в этом миксе, - это работать с API Java, которые возвращают класс коллекции Java в Scala. Это очень неуклюже, и вам нужно немного перепрыгнуть через обручи.
Поддерживаются плагины Scala для NetBeans. С разработкой Swing, сделанной так легко с NetBeans, это может быть просто то, что вы ищете:)
Отлично!!! Спасибо, что разделили эту идею.
В дополнение к этому в коде ниже использовался графический редактор (я использую 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