Groovy SwingBuilder:更改面板颜色的按钮

2024-02-18

为什么这段代码会失败? 我想更改动态构造的一系列多个面板中的一个面板的颜色(面板总数事先未知)。

由于某种原因,此代码在引用特定面板的名称(例如“panel2”)时有效,但在我动态引用它(“panelID”)时则无效。

import groovy.swing.SwingBuilder
import javax.swing.WindowConstants as WC
import javax.swing.JOptionPane
import javax.swing.BoxLayout as BXL

swing = new SwingBuilder()
frame = swing.frame(title:'test',
    defaultCloseOperation:WC.DISPOSE_ON_CLOSE) {

    panel(id:'mainPanel'){
        def panelID 

        (1..6).each {
            panelID = 'panel' + it

            panel(alignmentX: 0f, id: panelID , opaque:true ,background : java.awt.Color.GREEN){
                label('description') 
                textField(id: "description$it", text: panelID, columns: 70 )
                button(id: "button$panelID", text: panelID, actionPerformed : {
                    panelID.background = java.awt.Color.RED
                    panelID.repaint()                       
                })
            }
        }
        boxLayout(axis: BXL.Y_AXIS)

        panel(id:'secondPanel' , alignmentX: 0f){                       
            button('Quit', actionPerformed:{
                dispose()
            })
        }
    }       
}
frame.pack()
frame.show()

要根据元素的 ID 获取元素,您需要将 ID 作为 SwingBuilder 的参数进行访问,如下所示:

import groovy.swing.SwingBuilder
import javax.swing.WindowConstants as WC
import javax.swing.JOptionPane
import javax.swing.BoxLayout as BXL

swing = new SwingBuilder()
frame = swing.frame(title:'test', pack:true, visible:true, defaultCloseOperation:WC.DISPOSE_ON_CLOSE) {
    panel(id:'mainPanel'){
        (1..6).each { num ->
            def panelID = "panel$num"
            def pane = panel( alignmentX:0f, id:panelID, background:java.awt.Color.GREEN ) {
                label('description') 
                textField(id: "description$num", text:panelID, columns: 70 )
                button(id: "buttonpanel$num", text:panelID, actionPerformed : {
                    swing."$panelID".background = java.awt.Color.RED
                })
            }
        }
        boxLayout(axis: BXL.Y_AXIS)

        panel(id:'secondPanel' , alignmentX: 0f){                       
            button('Quit', actionPerformed:{
                frame.visible = false
            })
        }
    }       
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Groovy SwingBuilder:更改面板颜色的按钮 的相关文章

  • 在 gradle 中更新具有特定 id 的 xml 元素

    我想在 xml 文件中进行以下更改 我的测试 xml
  • Groovy , -> 是什么意思

    在常规代码的示例中我发现 gt 运算符无处不在 但是我的常规教程和书似乎都提供了关于这意味着什么的任何解释 它用于将声明闭包绑定的位置与实际代码分开 例如 def myClosure x y gt x y 之前的部分 gt 声明闭包有两个名
  • 生成加权随机数

    我正在尝试设计一种 好的 方法从一系列可能的数字中选择一个随机数 其中该范围内的每个数字都被赋予一个权重 简单地说 给定数字范围 0 1 2 选择一个数字 其中 0 有 80 的概率被选中 1 有 10 的概率 2 有 10 的概率 自从我
  • Gradle:战争任务有冲突的包含/排除

    我正在尝试使用 Gradle 构建一个 war 文件 但遇到了一个问题 即排除一个目录并包含另一个恰好具有相同名称但父目录不同的目录 请注意 在下面的第一个代码示例中 两者都没有css 目录将包含在最终版本中war文件 我假设是因为 Gra
  • 如何在不更改 equals 和 hashcode 的情况下插入集合

    我正在寻找建议 我有一个Person具有字符串firstName和字符串lastName的类 当我试图插入具有相同字符串的列表值时 例如 set add new Person firstName lastName set add new P
  • 漏洞! “语义分析”阶段的异常

    我有一个使用 Gradle 1 10 和 jdk1 8 的 1 1 7 spring boot 应用程序 我使用 Groovy Spock 进行测试它有两个依赖项 使用 Apache Maven 3 1 1 和 jdk 1 8 构建的 ja
  • Grails 2.4.3:使用 REST 服务

    如何在 Grails 2 4 3 中使用 RESTful Web 服务 我还需要使用基本身份验证 你可能认为这个问题已经有了一个很好的答案 但我真的很难找到一个 许多答案都向我指出了 Grails Rest 插件的方向 我已经尝试过但无法为
  • 为什么 Groovy/Grape 不能解析来自 Maven Central 的工件?

    通过全新下载的 Groovy 2 1 9 我创建了 Test Groovy Grab commons io commons io 1 2 import org apache commons io CopyUtils println Reso
  • IntelliJ + Groovy + Spock:没有为模块定义 Groovy 库

    我一直在尝试在 IntelliJ IDEA 中创建一个带有 Spock 测试的 Groovy 项目 以下是我遵循的步骤 创建 Groovy 项目并添加 Maven 支持 添加了 Spock 依赖项和插件 我使用的 POM 与此非常相似 ht
  • Groovy 中的 __LINE__ 功能

    可以通过以下方式获取当前行号 LINE 在 Ruby 或 Perl 中 例如 print filename FILE line LINE Groovy 中有同样的功能吗 不能直接获取 但您可以通过异常 或可抛出 堆栈跟踪来获取它 例如 St
  • 如何从 Jenkins 文件调用 groovy 脚本?

    我正在尝试将 Jenkinsfile 中的内容分离成一个常规脚本来制作 但它无法调用这些脚本 这是代码 usr bin env groovy node test node stage Checkout echo BRANCH NAME en
  • groovy 中具有默认值的命名参数

    是否可以在 groovy 中使用具有默认值的命名参数 我的计划是创建一种对象工厂 可以在没有任何参数的情况下调用它 以获得具有默认值的对象 另外 我需要显式设置对象的任何参数的功能 例如 我相信这可以通过 Python 关键字参数实现 我现
  • Groovy hasProperty/respondTo

    All the examples http mrhaki blogspot com 2009 10 groovy goodness check if method or html我看到使用hasProperty or respondsTo显
  • Groovy 中 Null Object 类的用途是什么?

    我已经使用 Groovy 五个小时了 刚刚发现Groovy NullObject http groovy codehaus org api index html org codehaus groovy runtime NullObject
  • 如何在 Mulesoft 中将睡眠设置为流程而不丢失消息负载

    我想插入脚本来延迟 Mulesoft 中的处理流程 我尝试在 groovy 中插入脚本 但丢失了消息有效负载 因此当我必须获取消息有效负载时 收到了空指针 我怎样才能不丢失消息有效负载 Thanks 如果您正在使用Groovy流程中的组件
  • 从 Groovy 中的列表中删除空项目

    从 Groovy 列表中删除空项目的最佳方法是什么 ex null 30 null 想要返回 30 只需使用减号 null 30 null null
  • 对于基于 Play 2.0 的 Java 应用程序,我可以使用 groovy 模板代替 scala 吗?

    我是 Play 2 0 新手 我很难理解用于创建视图的 scala 模板 我可以切换回 groovy 因为它存在于早期版本的 Play 框架中 例如 播放 1 2 播放 1 2 4 是的 有一个可用于 groovy 的模块 https gi
  • 詹金斯:${BUILD_LOG, maxLines, escapeHtml} 不起作用

    我正在尝试使用 BUILD LOG maxLines escapeHtml 如下所述 如何从 BUILD LOG 变量中获取最后 20 行 https stackoverflow com questions 16089096 how can
  • 如何将任务添加到 gradle 中的主要“构建”任务

    当我尝试使用以下代码将任务添加到主构建任务时 rootProject tasks getByName build dependsOn mytask 当我跑步时它抱怨gradle w build输出 Where Build file line
  • 如何在 Grails Geb/Spock 测试用例中获取 sessionFactory?

    我想我需要在 GebSpec 测试中刷新 hibernate 会话 所以我想获取 sessionFactory 看起来应该被注入 但是当我做这样的事情时 class MySpec extends GebSpec def sessionFac

随机推荐

  • Java:带状态的 ASCII 随机行文件访问

    是否有比创建满足以下条件的流文件读取器类更好的 预先存在的可选 Java 1 6 解决方案 给定一个任意大大小的 ASCII 文件 其中每行都以 n 对于某个方法的每次调用readLine 从文件中读取随机行 并且在文件句柄的生命周期内不会
  • JQuery 最佳实践,在 IIFE 中使用 $(document).ready?

    我正在看一段代码 function other code here document ready function other code here jQuery 我虽然 IIFE 执行 document ready 的功能 但这段代码正确吗
  • SQL Server - 条件语句的查询执行计划

    条件语句 例如如果别的 影响 SQL Server 2005 及更高版本 中的查询执行计划 条件语句是否会导致执行计划不佳 在考虑性能时是否需要警惕任何形式的条件 编辑添加 我特别指的是缓存的查询执行计划 例如 在下面的实例中缓存查询执行计
  • stringByAddingPercentEscapesUsingEncoding 转义的字符是什么?

    我不得不从 stringByAddingPercentEscapesUsingEncoding 切换到 CFURLCreateStringByAddingPercentEscapes 因为它不会转义问号 我很好奇它到底转义了什么 以及部分转
  • tee 和 script 本质上是等价的吗?

    在我想要捕捉的上下文中stdout文件中进程的一个 但仍希望在终端中显示此输出 我可以选择script and tee 在这种情况下 这些工具本质上是等效的 还是有一个 可能是微妙的 理由来选择其中一个而不是另一个 节目script and
  • 如何使用 MsBuild 创建可移植数据库?

    我想在我的解决方案中存储一个包含数据库创建脚本的项目 构建此项目时 它必须生成一个数据库文件 然后该数据库文件将在运行时供该解决方案的该项目和其他项目使用 怎么做 我知道我可以添加预构建任务 但我想知道 哪个命令行可以帮助我 也许 sqli
  • 使用 COM Interop 的 VB6 应用程序在 IDE 中工作正常,但编译后的 EXE 崩溃

    我目前正在开发一个 VB6 中的应用程序 该应用程序使用使用 NET 2 0 框架用 C 编写的 COM 互操作库 我使用 regasm exe 使用 codebase 开关从 NET dll 注册 tlb 文件 然后 我能够在 VB6 I
  • 如何在 Python 中为类型起别名?

    在某些 主要是函数式 语言中 您可以执行以下操作 type row list datum or type row datum 这样我们就可以构建这样的东西 type row datum type table row type databas
  • 为什么 Servlet 不是线程安全的? [复制]

    这个问题在这里已经有答案了 我需要知道为什么 servlet 不是线程安全的 Struts 2 0 框架控制器 servlet 是线程安全的原因是什么 我需要知道为什么 servlet 不是线程安全的 由于 Java 编程语言的多线程特性
  • 使用 adb 从损坏的 Android 设备中回收传感器

    我刚刚把我的s3弄坏了 三年前 它是最好的智能手机之一 Question如何通过 USB 获取手机惯性传感器的值 我想使用设备的加速度计 陀螺仪 磁力计 气压计和 GPS 传感器 假设我们想要得到 沿三个轴的原始加速度数据 我连接了 USB
  • Glassfish 5.0 java.lang.NoSuchMethodError

    当我尝试连接谷歌自定义搜索 api glassfish 时抛出 nosuchmethoderror 这就是代码 private int conn String search throws Exception String key mykey
  • HOG:对比度归一化步骤做了什么?

    根据HOG流程 如论文中所述用于人体检测的定向梯度直方图 参见下面的链接 对比归一化步骤是在分箱和加权投票之后完成的 我不明白 如果我已经计算了细胞的加权梯度 那么图像对比度的归一化现在对我有什么帮助 据我了解 对比度归一化是在原始图像上完
  • ggplot (geom_segment) 中的颜色

    使用facet grid时 如何根据数据中的因素对geom segments进行着色 我的方法失败了 因为颜色分配错误 这是一些数据 visual data data frame Values 10 1 Words c yeah what
  • 当我将 URL 添加到列表,然后使用 ajax 时,我尝试在某些 iframe 中显示列表的内容,页面会自行重新加载

    我正在构建一个仪表板 它的小工具是一些指向我想要在 iframe 内显示的不同页面的链接 我有一个按钮可以将新小工具添加到仪表板 添加新小工具后 我刷新仪表板 对于前 3 个小工具 应用程序没有任何问题 并且运行完美 但是 当我想添加第四个
  • 使用 bq 命令行实用程序运行保存的查询

    我有一个 BQ 脚本存储为 已保存的查询 我想知道是否可以使用 bq 命令行实用程序执行它 在文档中找不到相关内容 保存的查询 只能通过控制台访问 不能通过 API 访问 一种可能更适合您的方法是使用脚本和存储过程 https cloud
  • Git 中的致命错误:合并文件的多个阶段条目

    我正在从事我公司的一个生产项目 之前我创建了一个藏匿处并进行了一些更改 然后 当我尝试应用我的藏品时 它产生了冲突 我尝试通过单击每个文件中的 撤消 来重置 Visula Studio 中的所有更改 然后 当我尝试从 git bash 显示
  • 使用 @RequestBody List 的 Spring MVC REST 在语法上返回 HTTP 400

    我正在使用 Spring 4 Jackson 2 并在自定义类上使用 RequestBody 编写了一个功能齐全的 POST 方法 此方法在解组对象时没有任何问题 ResponseBody RequestMapping value stor
  • NSURLConnection、NSURLSession 和 AFNetworking 之间有什么区别? [关闭]

    Closed 这个问题需要细节或清晰度 help closed questions 目前不接受答案 我想知道它们之间的基本区别是什么 以及在 Objective c 和 swift 中管理 iOS 端 Web 服务的最佳和常见方法是什么 正
  • 如何在 Matlab 中将 PARFOR 与 Core i3 并行 4 工作

    我有适用于 Ubuntu 64 位的 Matlab R2012b 我有一个 Intel Core i3 CPU M 330 2 13GHz 4 我想用parfor同时并行化 4 个循环 因为 Intel Core i3 有 2 个核心和 4
  • Groovy SwingBuilder:更改面板颜色的按钮

    为什么这段代码会失败 我想更改动态构造的一系列多个面板中的一个面板的颜色 面板总数事先未知 由于某种原因 此代码在引用特定面板的名称 例如 panel2 时有效 但在我动态引用它 panelID 时则无效 import groovy swi