私は Java 開発者であり、Java での GUI アプリケーションの構築にかなりの割合を費やしてきました。私は Groovy に慣れていないので、率直に言って、いくつかの点で混乱しています。
私の質問は、次のコードがあることです。また、コンポーネントの配置に関するすべての制約のうち、JButton.CENTER のみが受け入れられます。他のすべては単に無視されます。bpanel のすべてのコードをコメントアウトしない限り、一番上の 'apanel' は表示されません。コンポーネントの配置のために他のさまざまな派生を試しましたが、何も機能しませんでした.実行時にコンパイルしてエラーが発生するものもあれば、まったくエラーにならないものもあります-これらのように-しかし、光栄ではありません。これがコードです。よろしくお願いいたします。また、Groovy で GUI 作業を行う場合、SwingBuilder を使用しますか、それとも Java で行うようにコーディングしますか?
import java.awt.*
import javax.swing.*
import groovy.swing.SwingBuilder
import java.awt.BorderLayout as BL
name = "ATestGroovyGui"
builder = new SwingBuilder().edt {
frame(title: name, show: true, pack: true, defaultCloseOperation:JFrame.EXIT_ON_CLOSE) {
apanel = panel() {
gridLayout(cols: 2, rows: 2)
label(text: "These", horizontalTextPosition: JLabel.CENTER)
label(text: "are", horizontalTextPosition: JLabel.CENTER)
label(text: "four", horizontalTextPosition: JLabel.CENTER)
label(text: "labels", horizontalTextPosition: JLabel.CENTER)
constraints: BL.CENTER
}
bpanel = panel() {
borderLayout()
alabel = label(text: "alabel",
horizontalTextPosition: JLabel.CENTER,
constraints: BorderLayout.WEST)
abutton = button(text: "abutton",
actionPerformed: { alabel.text = "changed" },
horizontalTextPosition: JButton.CENTER,
constraints: BorderLayout.EAST )
constraints: BL.SOUTH
println name + " button hit"
}
}
}