知识大全 Groovy高效编程—利用SwingBuilder构造GUI

Posted

篇首语:莫问天涯路几重,轻衫侧帽且从容。本文由小常识网(cha138.com)小编为大家整理,主要介绍了知识大全 Groovy高效编程—利用SwingBuilder构造GUI相关的知识,希望对你有一定的参考价值。

Groovy高效编程—利用SwingBuilder构造GUI  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!

  最近一直很忙 为了放松放松 自己就用Groovy写了个计算器玩玩 顺便也给还不太了解Groovy中SwingBuilder的朋友展示一下SwingBuilder的用法

  注意 请使用最新版本的Groovy 否则显示有问题

  运行结果

  

     /*   * Copyright the original author or authors   *   * Licensed under the Apache License Version (the License );   * you may not use this file except in pliance with the License   * You may obtain a copy of the License at   *   *   *   * Unless required by applicable law or agreed to in writing sofare   * distributed under the License is distributed on an AS IS BASIS   * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND either express or implied   * See the License for the specific language governing permissions and   * limitations under the License   */   package edu ecust swing   import groovy swing *   import javax swing *   import java awt *   /**   * Groovy Calculator for studying SwingBuilder   *   * @author Daniel Sun(rea)   *   * @since   */   class GroovyCalculator   def swing = new SwingBuilder()   JFrame frame   def toolkit = Toolkit getDefaultToolkit()   def screenSize = toolkit getScreenSize()   def WIDTH =   def HEIGHT =   int X = (screenSize width WIDTH) /   int Y = (screenSize height HEIGHT) /   boolean flag = false   private void run()   UIManager setLookAndFeel(UIManager getSystemLookAndFeelClassName())   frame = swing frame(title: Demo   size: [WIDTH HEIGHT]   location: [X Y]   defaultCloseOperation: javax swing WindowConstants DISPOSE_ON_CLOSE)   panel(layout: new BorderLayout())   textField(id: expr constraints: BorderLayout NORTH)   panel(constraints: BorderLayout CENTER)   tableLayout   tr   td   button(text: )   action(getAction( ))         td   button(text: )   action(getAction( ))         td   button(text: )   action(getAction( ))         td   button(text: / )   action(getAction( / ))            tr   td   button(text: )   action(getAction( ))         td   button(text: )   action(getAction( ))         td   button(text: )   action(getAction( ))         td   button(text: * )   action(getAction( * ))            tr   td   button(text: )   action(getAction( ))         td   button(text: )   action(getAction( ))         td   button(text: )   action(getAction( ))         td   button(text: )   action(getAction( ))            tr   td   button(text: )   action(getAction( ))         td   button(text: = )   action(name: = closure: this & eval)         td   button(text: C )   action(name: C closure: this & clear)         td   button(text: + )   action(getAction( + ))                        swing expr setEditable( false )   swing expr setHorizontalAlignment(JTextField RIGHT)   swing expr setBackground(Color WHITE)   frame pack()   frame setResizable( false )   frame setVisible( true )      private void append(EventObject evt = null )   if (flag)   swing expr text =   flag = false      String name = evt source text   swing expr text <<= name   swing expr text = swing expr text replaceAll( // / )      private void clear(EventObject evt = null )   swing expr text =      private void eval(EventObject evt = null )   String expr = swing expr text   def b = new Binding()   def conf = new ntrol CompilerConfiguration()   conf setSourceEncoding( unicode )   def groovyShell = new GroovyShell(b conf)   try   swing expr text = groovyShell evaluate(expr)    catch (Throwable t)   swing expr text = invalid expression!   flag = true         def getAction(name)   return swing action(name:name closure: this & append)      static void main(args)   new GroovyCalculator() run()      

cha138/Article/program/Java/hx/201311/25741

相关参考

知识大全 Groovy编程动态改变对象的能力

Groovy编程动态改变对象的能力  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  从Groovy

知识大全 Groovy编程—Annotations的使用

Groovy编程—Annotations的使用  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  从

知识大全 Groovy编程——Mixin的使用

Groovy编程——Mixin的使用  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  由于Java

知识大全 Groovy编程用Closure替代匿名类

Groovy编程用Closure替代匿名类  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  由于内

知识大全 高效JDBC编程工具JadePool快速入门

高效JDBC编程工具JadePool快速入门  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  使用

知识大全 Groovy轻松入门—搭建Groovy开发环境

Groovy轻松入门—搭建Groovy开发环境  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  由

知识大全 安装Groovy的Eclipse插件

安装Groovy的Eclipse插件  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!Groovy的E

知识大全 Groovy: 沉睡的巨人

Groovy:沉睡的巨人  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  像RubyPython甚

知识大全 用Groovy搞定SOAP消息

用Groovy搞定SOAP消息  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  看了YanHua同

知识大全 Java帝国的王储——Groovy

Java帝国的王储——Groovy  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!让我们来回顾一下主