私は Groovy パーティー (他のほとんどのパーティーと同様) には少し遅れており、オンラインで見つけることができたドキュメントSwingBuilder
はやや限られています。Groovy でゲーム アプリケーションを構築しようとしています (現在の Java コードを Groovy に変換します)。Java には、ラベル、テキスト フィールド、ボタン、および GUI の構築に使用できるその他すべての楽しいスイング アイテムを含む JFrame
複数の があります。JPanel
これらすべてのコードは、変数ごとに宣言する必要があり、面倒な場合があります。JButton
そのJPanel
ため、SwingBuilder
数日前に groovy を発見したときは当然のことながら、私は有頂天になりました。
ただし、例は多少限定されています。だからここに私の初期コードがあります。
def Game(){
mainMenu = new MainMenuPanel()
gPane = new SwingBuilder()
gPane.edt{
frame(size:[1024,768],
defaultCloseOperation: JFrame.EXIT_ON_CLOSE, location:[75,50], show:true, pack:false){
container(container:mainMenu){}
widget(mainMenu)
}
}
}
mainMenu.shell.show()
}
MainMenuPanel
私はこのコードを持っています
class MainMenuPanel extends JPanel implements ActionListener, KeyListener, ItemListener {
public shell
shell = new SwingBuilder()
shell.panel(id: "mainM",/*size:[512, 354],
shell.edt{frame(show:true){panel(size:[512, 354],
layout: new GridLayout(cols:1, rows: 7),*/
visible:true, constraints: BL.NORTH){
textLabel = label(text: "Welcome Travelers", horizontalAlignment: 0)
speak = button(CreateButton("Say Hello", 83),
actionPerformed:{ shell.optionPane(message: "Hello World").createDialog(null, "Hello").show()})
}
}
groovy スクリプトを実行するJFrame
と、何も入っていない , が表示されます。このコードのさまざまな組み合わせを試しましたが、2 つのフレームが表示されることがありますが、互いにネストされていません。ほとんどの場合、何も得られません。
私がやろうとしていることの目的は、MainMenu
そのパネルを制御する機能を持つメニュー パネルを返すクラスと、他のさまざまなことを行い、それらすべてをペインにネストするパネルを返すさまざまな他のクラスを持つことです。
これを行うことは可能ですか?ここで何か不足していますか?