在Scala中创建GUI但没有Swing/AWT

Bas*_*ian 7 user-interface swing scala cross-platform awt

我打算写一个新的应用程序,它应该有一个GUI.当我最近浏览了一本关于Scala的书(并且变得非常窒息)时,我决定首先学习该语言,然后尝试构建该程序.

我想知道:在没有被迫使用Swing/AWT工具包的情况下,是否有任何可靠的方法在Scala中构建GUI?我不喜欢Swing/AWT,因为它们看起来与Qt&Co.相比还不成熟.遗憾的是我找不到有关在Scala中构建GUI而不依赖于它们的更多信息.

因为我对Scala很新,并且对它不太了解,但是,我也想知道特定工具包的Java绑定是否可以在Scala中以不牺牲任何Scala的令人愉快的方式使用功能(例如模式匹配).

还有一点需要注意:该工具包应该支持Linux和Windows,并且Look-and-Feel应该与每个平台上的本机相同.

更新:这是我目前的工具包排名(随意评论):
1.SWT
+原生L&F
+真正的Java解决方案
.还不确定性能
.不确定学习和编码的简单性,但是
- dealloc需要释放资源
2. Qt Jambi
+部分原生L&F
+许多可能性
+非常容易学习
.不确定性能,但是
- 围绕C++工具包的包装=>可能代码变得丑陋吗?
3. Java Gnome
.不确定任何事情,但是 - 还有人试过吗?

没有积极开发Java包装器的工具包似乎存在:
- WxWidgets

丢弃的工具包:
- Swing/AWT:旧的我不喜欢编码
- JavaFX:Rich Internet Application的目标 - 我想要一个独立的应用程序

从头开始为Scala程序员编写的新工具包会很好但我想这不会发生,因为有可能重用基于Java的解决方案.

Jam*_*ven 6

Scala应该能够做你在java中可以做的任何事情,所以是的,如果你有一个gui库的java绑定,它应该可以正常工作.

你有没有看过SWT,作为AWT/Swing的替代品?它尽可能使用本机小部件.Eclipse是用SWT编写的.

  • 巴斯蒂安:日食的缓慢主要是因为它是一个巨大的,不可动摇的庞然大物.SWT对每个事件都会受到惩罚,因为你需要退出Java-land到本机代码并返回,但是对于一个很少出现问题的普通UI. (2认同)
  • 乔伊说的第二个.Eclipse是一种野兽(但仍然是一种很好的工具).SWT很快.Speed是OTI/IBM SWT的主要设计目标之一. (2认同)