Scala和Swing GUI应用程序

25

我在阅读《Scala编程》这本书的部分内容时,了解到Scala可以与Java Swing组件一起使用来创建GUI应用程序。

我的问题是是否有任何使用Scala和Swing的项目或发布的应用程序(不仅仅是简单的示例)?

4个回答

33

您是想查看一些实际的 Scala Swing 代码,还是只是想知道 Scala Swing 是否“适合生产”?如果是后者,Scala Swing 非常不错:我已经开始将其用于所有 GUI 代码。比较一下:

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
    }
});

使用:

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

由于Scala Swing实际上只是Java Swing的轻量级层,因此您可以轻松地集成任何Java Swing组件,并确保一切正常运行。

尽管如此,截至Scala 2.7版本,文档相当贫乏。我了解到在2.8版本中,Scala Swing正在升级,并将包括改进的文档。


我想应该是两者兼备吧。通常情况下,Scala比Java更易读。谢谢。 - ZacharyP

11

镜屋

我用Scala编写了这个游戏。它是开源的,并通过Java和Scala库接口使用Swing。

正如oxbox_lakes所证明的那样,Scala API很好用。我只需要在特定的低级控制(例如自定义alpha组合)时才使用Java接口。

在Scala-swing库变得稳定之前,该游戏基于Scala-Squib,但据我所知,该项目已经暂停了。


7

在Google code上有一个名为Scalide的项目,而Scala本身也拥有Swing库。


3

最近我参加了一场关于Scala的讲座,其中展示的一个产品是一个Scala-Swing版的Twitter客户端。它是开源的,项目网站是TalkingPuffin。对于一个Swing项目来说,它的用户界面看起来相当不错,我相信该项目正在寻找贡献者。


这看起来是一个很好的Scala Swing代码示例。可惜该应用程序现在无法使用,因为自“OAuthocalypse”以来已经有几个月没有提交了。 - Ben James
截至今天,提交似乎非常活跃。 - Michael Deardeuff

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接