2009-10-15 19 views
25

Aus dem Lesen von Teilen des Programms Programmierung in Scala weiß ich, dass Scala mit den Java Swing-Komponenten arbeiten kann, um GUI-Anwendungen zu erstellen.Scala und Swing GUI-Anwendungen

Meine Frage ist, ob es irgendwelche Projekte oder veröffentlichte Anwendungen (die mehr als nur einfache Beispiele sind), die Scala und Swing verwenden?

Antwort

34

Ist dies, weil Sie einige aktuelle Scala Swing-Code sehen möchten, oder sind Sie nur daran interessiert, ob Scala Swing ist „produktions- bereit "? Wenn es Letzteres ist, ist Scala Swing ziemlich gut: Ich habe angefangen, es für alle GUI-Code zu verwenden. Vergleichen:

JButton b = new JButton(); 
b.setText("OK"); 
b.setFont(f); 
b.setPreferredSize(new Dimension(20, 20)); 
b.addActionListener(new ActionListener() { 
    public void actionPerformed(ActionEvent e) { 
     //reacction here 
    } 
}); 

mit:

val b = new Button { 
    text = "OK" 
    font = f 
    preferredSize = (20, 20) 
} 
listenTo(b) 
reactions += { 
    case ButtonClicked(`b`) => //reaction here 
} 

Als Scala Swing ist wirklich nur eine leichte Schicht oben auf Java Swing, können Sie eine beliebige Java-Swing-Komponente leicht integrieren und sicher sein, dass alles OK funktioniert.

Das gesagt, die Dokumentation wie von Scala 2.7 ist ziemlich arm. Ich verstehe, dass Scala Swing in der Version 2.8 aktualisiert wird und dass dies eine verbesserte Dokumentation beinhalten wird.

+0

Ein bisschen von beidem, nehme ich an. Wie üblich liest Scala viel einfacher als sein Java-Äquivalent. Vielen Dank. – ZacharyP

7

Es gibt Scalide bei Google Code, und dann Scala selbst hat Swing Bibliothek

+0

Danke für das Beispiel. – ZacharyP

+0

Gern geschehen. Scala ist faszinierend - oder? – Bostone

11

Haus des Spiegels

Ich habe this game in Scala geschrieben. Es ist Open-Source und verwendet Swing über die Java und Scala Bibliotheksschnittstellen.

Die Scala API ist großartig, um mit oxbox_lakes illustriert zu arbeiten. Ich musste die Java-Schnittstelle nur für spezifische Low-Level-Kontrolle wie benutzerdefinierte Alpha-Zusammensetzung verwenden.

Bevor die Scala-Swing-Bibliothek stabil geworden war, basierte das Spiel auf Scala-Squib, aber dieses Projekt hat AFAIK pausiert.

3

Ich besuchte kürzlich einen Vortrag auf Scala und eines der Produkte Demo-Ed war ein Scala-Swing Twitter-Client. Es ist Open-Source und das Projekt ist TalkingPuffin. Die Benutzeroberfläche sah für ein Swing-Projekt ziemlich glatt aus und ich glaube, dass das Projekt nach Mitwirkenden sucht.

+0

Das sieht wie ein großartiges Beispiel für Scala Swing-Code aus. Es ist eine Schande, dass die App jetzt unbrauchbar ist, da sie seit einigen Monaten vor der "OAuthocalypse" nicht mehr begangen wurde. –

+0

Ab heute scheinen die Commits ziemlich aktiv zu sein –