我试图用Java编写我的第一个基于GUI的游戏,我选择了扫雷。我是Java中的新手(虽然我可以设法编写游戏的逻辑部分而不是"新手"在"我不知道什么是类&# 34;感觉)和Swing中的一个完整的新生,所以我喜欢,如果我可以使用所见即所得编辑器(如NetBeans)编辑器而不是手工编写布局。
然而,在使用编辑器之后,根据我目前的理解,我只能使用Netbeans编辑器设置不同数量的不同容器 - 我的意思是,我必须提前知道电路板的尺寸是多少具有。但是,我希望电路板能够动态调整大小,以便用户可以使用31个炸弹在9x9网格上玩,以及使用3个炸弹在100x105网格上玩。你能创建这样的动态调整大小(当然不是动态调整 - 我的意思是用户可以决定他在开始游戏时想要播放的网格)还有WYSIWYG编辑器的按钮网格,或者这样的事情需要编码所有你自己从头开始?
答案 0 :(得分:2)
手工编写布局,这完全适用于GridLayout
使用JButton
,最好将JToggleButton
用于Icon
setXxxIcon methods
答案 1 :(得分:1)
请至少编写部分内容 - 您可能会在循环中轻松创建可能在扫雷领域使用的按钮。该按钮有一个数据字段,您可以将其用于字段的状态(炸弹,无炸弹,隐藏,标记,空)。因此,当您为按钮创建ONE Actionlistener时,您应该能够在那里做出反应。
你真正的问题: 是的,这在很大程度上取决于您使用的布局。避免调整大小,当您需要设置按钮大小时,请始终参考100%的基数:
setButtonSize(){
int iWindowWidth = 437; // example, can be any value. Stands for 100%
button1.setWidth((int)(iWindowWidth * 0.2)); // 20%
button1.setWidth((int)(iWindowWidth * 0.3)); // 30%
button1.setWidth((int)(iWindowWidth * 0.05));// 5%
button1.setWidth((int)(iWindowWidth * 0.45));// 45%
}
这也是我创建动态宽度定义列宽的表格。