gpt4 book ai didi

java - 多个 Swingbuilder 实例?

转载 作者:行者123 更新时间:2023-11-30 11:40:21 25 4
gpt4 key购买 nike

我参加 Groovy 聚会有点晚(像大多数其他聚会一样),而且我在网上找到的关于 SwingBuilder 的文档有些有限。我正在尝试在 Groovy 中构建一个游戏应用程序(将我当前的 Java 代码转换为 Groovy)。在 Java 中,我有一个 JFrame 和多个 JPanel,其中包括标签、文本字段和按钮以及您可以在构建 GUI 时使用的所有其他有趣的 Swing 项目。

所有这一切的代码可能很麻烦,必须为每个 JButtonJPanel 等等声明变量,所以很自然地当我发现 SwingBuilder 就在几天前,我欣喜若狂。

但是,示例有些有限。所以这是我的初始代码。

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,其中没有任何内容。我尝试了这段代码的各种组合,有时我会得到两个框架,但它们并没有相互嵌套。大多数时候我一无所获。

我正在尝试做的事情的目的是有一个 MainMenu 类返回一个具有控制该面板功能的菜单面板,并且有各种其他类也返回执行其他操作的面板各种东西并将它们全部嵌套在 Pane 中。

这有可能吗?我在这里错过了什么吗?

最佳答案

我相信这在功能上与您上面的类似:

import groovy.swing.SwingBuilder

def mainMenu = { builder ->
builder.panel( id:'mainM' ) {
label( text: 'Welcome Travelers' )
button( text: 'Say Hello', actionPerformed:{
builder.optionPane( message:'Hello World' )
.createDialog( null, 'Hello' )
.show()
} )
}
}

new SwingBuilder().with { builder ->
builder.edt {
frame( size:[ 1024, 768 ], show:true ) {
panel()
mainMenu( builder )
}
}
}

希望对您有所帮助?

关于java - 多个 Swingbuilder 实例?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12792444/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com