Swing 使用Groovy UI按钮调用Groovy脚本
我目前正在用Groovy Swing builder构建一个UI,我想在单击按钮时调用另一个脚本 我的代码:Swing 使用Groovy UI按钮调用Groovy脚本,swing,groovy,Swing,Groovy,我目前正在用Groovy Swing builder构建一个UI,我想在单击按钮时调用另一个脚本 我的代码: panel(alignmentX:0f) { flowLayout(alignment:FL.LEFT) button('Import KM', actionPerformed: { vars.dialogResult = 'Import KM' gshell.evaluate(new File("ImportKnowledgeModules.groovy
panel(alignmentX:0f) {
flowLayout(alignment:FL.LEFT)
button('Import KM', actionPerformed: {
vars.dialogResult = 'Import KM'
gshell.evaluate(new File("ImportKnowledgeModules.groovy"))
})
新脚本也与调用脚本位于同一目录中。但当我点击“导入KM”按钮时,什么也没有发生
这里我遗漏了什么?考虑到第二个脚本路径必须是相对于运行
groovy
命令的路径,而不是相对于UI-groovy脚本的路径
示例:我从中获取原始代码,并将其保存为swing.groovy
,然后更改click me按钮
,以像您一样调用swing.groovy
本身。最后,我在swing.groovy
中有以下代码:
import groovy.swing.SwingBuilder
import java.awt.BorderLayout as BL
import groovy.lang.GroovyShell
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: {
println "click :P"
new GroovyShell().evaluate(new File('swing.groovy'))
}, constraints:BL.SOUTH)
}
}
如果我运行groovy swing.groovy
,按钮将正确计算脚本,UI将递归显示。但是,如果我从另一个路径运行groovy,比如groovy./Scripts/swing.groovy
,那么我必须从代码中将路径更改为newgroovyshell().evaluate(新文件('./Scripts/swing.groovy'))
,以便正确引用它
希望有帮助