使用Swing所见即所得编辑器动态调整按钮网格的大小



我试着用Java编写我的第一款基于gui的游戏,我选择了《扫雷》。我是一个Java新手(虽然我可以设法编程游戏的逻辑部分,所以不是"我不知道什么是类"意义上的"新手"),也是一个Swing新手,所以我希望我可以使用WYSIWYG编辑器(如NetBeans)来处理图形部分,而不是手工编写布局。

然而,在玩了编辑器之后,就我目前的理解,我只能用Netbeans编辑器设置恒定数量的不同容器-我的意思是,我必须事先知道板必须有什么尺寸。然而,我希望棋盘能够动态调整大小,以便用户可以在带有31个炸弹的9x9网格上玩游戏,就像在带有3个炸弹的100x105网格上玩游戏一样。你是否可以使用WYSIWYG编辑器创建这种动态调整大小的按钮网格(当然不是即时的-我的意思是用户可以在开始游戏时决定他想要玩的网格),或者这样的事情需要自己从头开始编写所有这些?

  • 手工编写布局,这正是GridLayout

  • 的工作
  • JButton,用JToggleButtonIcon比较好

  • JButton/JToggleButton使用合适的setXxxIcon methods

请不要在GUI编辑器中这样做。你可能会创建太多的可变特征组件。

请至少自己编写部分代码-您可能在扫雷器字段上使用的按钮应该很容易在循环中创建。该按钮有一个数据字段,您可以将其用于字段的状态(炸弹、无炸弹、隐藏、标记、空)。所以当你为按钮创建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%
}

这也是我如何创建动态宽度定义列宽度的表

相关内容

  • 没有找到相关文章

最新更新