Groovy:按下时改变按钮的文本

时间:2017-11-24 00:33:40

标签: groovy

我正在寻找一种在单击时更改Groovy中按钮文本的方法。我找不到任何文件。我正在使用Swingbuilder来打开按钮(这是用于战舰游戏)。我很擅长使用这个语言。

我正在使用的是:

import groovy.swing.SwingBuilder
import javax.swing.*
import java.awt.BorderLayout


class FrontEnd {
    FrontEnd() {
        def builder = new SwingBuilder()
        builder.edt {
            frame(title: 'Battleship', size: [500, 350], show: true, locationRelativeTo: null, resizable: false,
                defaultCloseOperation: WindowConstants.EXIT_ON_CLOSE) {

                borderLayout(vgap: 5)

                panel(constraints: BorderLayout.CENTER) {
                    tableLayout {
                        tr {...
                        }
                        tr {
                            td {
                                label '1'
                            }
                            td {
                                button(id: 'a1', text: ' ', actionPerformed:)
                            }
                            td {
                                button(id: 'b1', text: ' ', actionPerformed:)
                            }

我不知道这个设置是否可行,所以如果有其他方式我会很高兴知道它。

谢谢。

1 个答案:

答案 0 :(得分:1)

以下示例为变量myButton指定一个按钮,然后将其用作参考。点击该按钮会将文字设置为hello 0hello 1等:

import groovy.swing.SwingBuilder 
import groovy.beans.Bindable 
import static javax.swing.JFrame.EXIT_ON_CLOSE 
import java.awt.*

class Example {
    static def count = 0

    static void main(String[] args) {
        def swingBuilder = new SwingBuilder()
        swingBuilder.edt {  
            frame(title: 'Example', size: [140, 80],
                  show: true, locationRelativeTo: null,
                  defaultCloseOperation: EXIT_ON_CLOSE) {
                borderLayout(vgap: 5)

                panel(constraints: BorderLayout.SOUTH) {
                    myButton = button text: 'Save', actionPerformed: {
                        myButton.setText("hello ${count++}")
                    }
                }
            } 
        }
    }
}