2017-11-24 10 views
0

クリックするとGroovyのボタンのテキストを変更する方法を探しています。私はそれに関する文書を見つけることができません。私はSwingbuilderを使ってボタンを出しています(戦艦ゲーム用です)。私はこのlangを使ってかなり新しいです。私が使用している何Groovy:押されたときのボタンのテキストの変更

は次のとおりです。

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

次の例では、変数myButtonにボタンを割り当て、参照用に使用します。ボタンをクリックするなど、hello 1hello 0にテキストを設定します:

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++}") 
        } 
       } 
      } 
     } 
    } 
} 
+0

これは完璧に動作、ありがとうございます。 Groovyについてはあまり書かれていませんが、私が見つけた例はどれもこの構造を使用していませんでした。本当にありがとう。 – NicolasB

関連する問題