2009-06-23 7 views

Antwort

5

Intellij leistet gute Arbeit bei der Unterstützung gemischter Java/Scala-Projekte. Momentan scheint mir die Scala-Unterstützung in Intellij besser zu sein als die Scala-IDE für Eclipse. (Ich war lange Zeit Eclipse-Benutzer und habe kürzlich Intellij auf Empfehlung einiger anderer Scala-Programmierer getestet).

+0

Ja, die Co-Entwicklung funktioniert. Im Scala-Modus kann ich das Javadoc sehen. Leider im Java-Modus fragt javadoc auf einem Scala-Element eine Fehlermeldung. – akarnokd

+0

Obwohl Skaffman eine gleich gute Antwort gegeben hat, wähle ich diese, weil die Intellij scheinbar einen besseren Job macht. Vielen Dank. Es war keine leichte Entscheidung, da ich Intellij nicht kenne. Um meiner Aufgabe willen muss ich es aber auch lernen. – akarnokd

+0

+1 für IntelliJ mit besserer Scala-Unterstützung als Eclipse. –

1

Haben Sie Scala Swing Wrapper ausprobiert? Es ist sehr leicht in dem Sinne, dass Sie immer Zugriff auf die zugrunde liegenden Swing-Klassen haben, aber es ist sehr gut durchdacht. Ich habe es angenehm empfunden haben, mit zu arbeiten - die Reaktionen Muster macht Ereignispropagierung Event-Handling so viel einfacher, und der Schauspieler Rahmen macht so viel klarer als Property mit

Es ist durchaus möglich, es mit Ihrem eigenen zu verwenden Swing-Widgets auch.

+0

habe ich versucht, die Beispielprogramme aus dem Scala Buch, aber ich fand es auch anders als meine Jahre Erfahrung langen Swing-GUI-Entwicklung. – akarnokd

+0

Ich schreibe Swing seit 10 Jahren - geben Sie Scala eine Chance! –

+0

Ich denke, es wird genug sein, um die Scala-Art der Programmierung und die Akteur-Framework zu lernen, und Verwechslungen aufgrund der Scala GUI Entwicklungspraxis Unterschiede zu vermeiden, wie ich an mehreren anderen, Swing GUI-Ed-Projekte zur gleichen Zeit arbeite. – akarnokd

21

Das "offizielle" Scala-Plugin für Eclipse ermöglicht es Ihnen, die "Scala-Natur" zu jedem Projekt hinzuzufügen, neben der Java-Natur. So können Sie beliebig kombinieren und anpassen.

Ich habe letzte Nacht zum ersten Mal mit scala gespielt, mit der Eclipse IDE, und es funktioniert sehr gut.


Auch ich lief nur über diesen Artikel: http://www.codecommit.com/blog/scala/joint-compilation-of-scala-and-java-sources

Es scheint, dass scalac genug über Java kennt Quelle in der Lage sein zu lösen Abhängigkeiten von Java, ohne sie tatsächlich zu kompilieren. Sehr schlau.

+2

Schön. Funktioniert diese Kooperation für den Javadoc/Scaladoc in beiden Richtungen? – akarnokd

+0

Das ist eine gute Frage. Ich vermute nicht. Wenn zwischen java und scala zirkuläre Abhängigkeiten bestehen, kann es zu Problemen kommen. Das könnte ein echtes Problem für kontinuierliche Integrationssysteme sein. – skaffman

+0

Siehe bearbeiten bezüglich scalac/javac Abhängigkeiten – skaffman

0

Die Scala plugins for NetBeans sind auch gut. Mit Swing Entwicklung so einfach gemacht mit NetBeans, könnte es genau das sein, was Sie suchen :)

+0

Ja, das war eine der Bedeutungen von "the family Swing way", um nicht manuell zu programmieren, sondern einen GUI-Builder zu verwenden. Aber ich war mir vorher nicht sicher, ob das eigentliche Hybridprojekt möglich wäre. Vielen Dank. (Ich kannte Scala für Eclipse, aber es war ein bisschen enttäuschend - sogar das Syntax-Highlight funktionierte nicht richtig/sofort wie in Java.) Danke. – akarnokd

1

Ich habe erfolgreich Java und Scala in meiner App gemischt. Es läuft in der Goggle App Engine und ich benutze Spring MVC für die Benutzeroberfläche. (wird später zum Aufzug)

Die Plugins für Intellij sind eine große Hilfe. Obwohl es noch frühe Tage gibt und es gelegentlich Probleme gibt. (zum Beispiel scheint der Scala-Plugin-Compiler JDO-erweiterte Java-Klassen nicht zu sehr zu mögen ... es gibt eine Arbeit und ich bin mir sicher, dass dieser Fehler bald behoben sein wird).

Das einzige, was ich an der Mischung ein wenig langweilig finde, ist der Umgang mit Java-APIs, die Java-Collection-Klasse in Scala zurückgeben. Es ist sehr klobig und man muss ein wenig durch die Reifen springen.

2

Mixing JAVA (Netbeans GUI-Builder) und Scala-Swing:

ich gerade ein neues JPanel mit dem GUI-Builder und einige Steuerelemente und einfache Logik.

erstellt dann ein scala Objekt wie in Scala-Swing-Tutorials gesehen:

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

Dann habe ich die neue JPanel zu den Inhalten hinzugefügt:

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

Beim Kompilieren des Projekts i jede Änderung sehen das JPanel im GUI-Builder Cool.

0

Großartig !!! Danke für das Teilen der Idee.

Nur zur Ergänzung, der Code unten verwendet einen GUI-Editor (ich verwende WindowBuilder + Eclipse + Scala Plugin), um die GUI zu entwerfen, und dann kann alles andere mit Scala getan werden. Jetzt ist es möglich, einen Java Swing GUI Editor zu verwenden und die gesamte Programmierung in Scala durchzuführen.

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

Verwandte Themen