通过做一个简单的游戏来继续学习 Java,我偶然发现了一个小问题。我的游戏板扩展了 JPanel 以及游戏板的每一 block 。现在,这带来了一些问题:
无法设置每个棋子的大小,因此每个棋子JPanel占据整个JFrame,隐藏其余棋子和背景(游戏板)。
无法设置棋子的位置。
我有默认的流程管理器。尝试过设置限制但没有运气。
也许我应该制作这个片段来扩展其他 JComponent? 添加的图像: 这就是那 block ,现在灰色区域也是那 block !通过创建 mousePressed 监听器并为其分配一些内容来检查这一点。灰色区域下方是游戏板(或者至少应该是!),另一个 JPanel。
alt text http://img42.imageshack.us/img42/2227/screenshotvdy.png
一些代码:
package TheProject;
import java.awt.Color;
import java.awt.Dimension;
import javax.swing.JFrame;
import javax.swing.JPanel;
public class GameWindow extends JFrame {
public GameWindow() {
setSize(800, 600);
setLocationRelativeTo(null);
Map map = new Map(800, 600, 2);
add(map);
MilitaryUnit imperialRussia = new MilitaryUnit(30, Color.BLACK, Color.YELLOW, Color.WHITE);
imperialRussia.setPreferredSize(new Dimension(30, 30));
add(imperialRussia);
}
}
当我应用 pack() 方法时会发生这种情况: alt text http://img442.imageshack.us/img442/5813/screenshot2ml.png
包裹在单位周围,而不是更大并填满 JFrame 的 map 。
最佳答案
对于棋子随机移动的游戏,您可能会使用“空布局”。
阅读 Swing 教程中关于 Absolute Positioning 的部分了解更多信息。
关于java - 在 JFrame 内移动 JPanels 对象并调整其大小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2626403/