首页 文章

Scala / Groovy / Clojure中的GUI

提问于
浏览
28

上次我不得不处理Java是2005年,从那时起我几乎忘了它的一切 .

今天我需要在Java之上构建一个GUI应用程序 . 我想最好使用Scala / Groovy / Clojure语言之一 .

The question is :哪个更适合桌面GUI编程?我的程序将转换并显示一系列jpeg / png文件,将有大约10个对话框(每个对话框中包含大量选项,包含所有可能的小部件) .

主要要求是紧凑性:我讨厌只编写十几行代码来绘制一个带按钮的简单框架 . 我在GUI中的背景是(大部分)Tcl / Tk和GTK .

6 回答

  • 20

    Scala附带了相当完整的基本GUI元素示例应用程序,您可以通过在命令行键入 scala scala.swing.test.UIDemo 来运行它们 . 您可以浏览它们的源代码here .

    您也可以查看this document以了解Scala Swing包装器背后的设计原理 .

  • 4

    免责声明:我是Clojure程序员 . 我显然有偏见 .

    在所有这些语言中,我认为Clojure和Groovy可能是最紧凑的 . Scala是一种像Java一样的大括号语言,所以它往往会占用更多的空间 . 然而,它远没有Java那么冗长,我认为Scala非常棒 . 我知道Scala有一个摆动包装器 . 我从未在Scala中进行GUI开发,所以我无法真正说出它的感受 .

    我已经在Clojure中完成了一些摇摆开发,并没有太多需要 . 使用Clojure中的swing直接可能会很乏味,直到你自己编写一些抽象,但总的来说,swing应用程序比Java中的相同,因为Clojure代码往往比Java代码更简洁,更简洁 .

    Clojure也有一些包装,可以让摇摆发展更多Clojury . 其中一个是clj-swing . 我很酷,而且比直接互操作更简洁 .

    现在,我不知道Groovy . 我真的对此一无所知,但我知道它比Java更紧凑,所以我认为GUI开发也相当紧凑 .

    我认为Clojure是一个安全的赌注 . 使用clj-swing,甚至直接使用Java GUI工具包与Java相比将会非常紧凑,并且使用宏构建非紧凑内容的抽象的能力绝对是一个巨大的优势 . Clojure有我的投票 .

  • 18

    Groovy有Griffon框架,它使用约定优于配置来在JVM上构建GUI应用程序 . 它与grails / rails类似,但是对于丰富的GUI而不是Web应用程序 .

  • 9

    Groovy有一个名为swing builder的东西,可以使GUI编程更容易 . 这是来自groovy网站的一段示例代码,它创建一个带有按钮的框架并计算您单击它的次数:

    int count = 0
    new SwingBuilder().edt {
      frame(title:'Frame', size:[300,300], show: true) {
        borderLayout()
        textlabel = label(text:"Click the button!", constraints: BL.NORTH)
        button(text:'Click Me',
             actionPerformed: {count++; textlabel.text = "Clicked ${count} time(s)."; println "clicked"},
             constraints:BL.SOUTH)
      }
    }
    
  • 3

    我目前正在Scala中开发一个SWT应用程序,非常喜欢它 . 但我确实希望Clojure会更加紧凑 .

  • 7

    我一直在使用Clojure直接使用Swing编写GUI . 到目前为止,它确实运作良好 . 我还用Java编写了一些自定义UI组件,这些组件已经证明很容易与代码库的Clojure部分集成 .

    我也认为clj-swing看起来很棒 - 如果你没有先前的Swing经验,可能比直接使用Swing更容易 .

相关问题