知识大全 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编程动态改变对象的能力 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 从Groovy
Groovy编程—Annotations的使用 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 从
Groovy编程——Mixin的使用 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 由于Java
Groovy编程用Closure替代匿名类 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 由于内
高效JDBC编程工具JadePool快速入门 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 使用
Groovy轻松入门—搭建Groovy开发环境 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 由
安装Groovy的Eclipse插件 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!Groovy的E
Groovy:沉睡的巨人 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 像RubyPython甚
用Groovy搞定SOAP消息 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 看了YanHua同
Java帝国的王储——Groovy 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!让我们来回顾一下主