1

私は 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"  
        }  
    }  
}  
4

1 に答える 1

2

複雑な UI には Miglayout を使用することをお勧めします。少し学習曲線がありますが、後ではるかに簡単になります。SwingBuilder は Miglayout を適切にサポートしていますが、利用可能なドキュメントや例はあまりありません。以前、Miglayout と Swingbuilder に関するいくつかの投稿をここに書きました。

于 2014-06-08T02:10:13.337 に答える