我试图像Puralax一样为学校制作游戏。这是我的第一年。
目前,我正在通过“测试测试”进行测试。和' DitMoetWerken.java'用于制作完整JFrame的类。
我的猜测是VakUI没有画画,但我不知道为什么。这些应该是我矩阵中的方块。
这是我调用所有JFrame的地方:
public class DitMoetWerken extends JFrame {
Spel spel;
public DitMoetWerken(Spel spel, int level) throws HeadlessException {
this.spel = spel;
setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
setSize(800,500);
setTitle("Puralax");
setVisible(true);
spel.beginLevel(level);
SpelFrame spelFrame = new SpelFrame(spel,new JButton("terugknop"),new JButton("resetknop"));
this.add(spelFrame,BorderLayout.CENTER);
这是我为自己的比赛制作名单的地方。它是一个矩阵,在这个级别中长度为3x3:
public class SpelbordUI extends JPanel {
private final Spel spel;
private SpelRooster spelRooster;
private boolean vakChecker = false;
private Vak bewaardVak;
public SpelbordUI(Spel spel) {
this.spel = spel;
this.spelRooster = spel.getSpelRooster();
initAll();
}
private void initAll(){
this.removeAll();
this.setLayout(new GridLayout(spelRooster.getLengte(),spelRooster.getLengte(),20,20));
for (int i = 0; i < spelRooster.getLengte(); i++) {
for (int j = 0; j < spelRooster.getLengte(); j++) {
VakUI vak = new VakUI(spelRooster.getRooster()[i][j]);
this.add(vak);
}
}
}}
A&#39; vak&#39;在我的语言中是一个正方形。对不起任何可能的混淆。
这个VakUI的类看起来像这样,我认为我的问题在于paintComponent
。我认为它应该只是填充VakUI中的vak,因为this.setBackground(kleur)
或者我应该在新的方块中绘制它们吗?
public class VakUI extends JPanel {
private Color kleur;
private Vak vak;
public VakUI(Vak vak) {
this.vak = vak;
this.kleur = vak.getKleur();
}
public Vak getVak() {
return vak;
}
@Override
protected void paintComponent(Graphics g) {
super.paintComponent(g);
this.setBackground(kleur);
}}
答案 0 :(得分:0)
在课堂上DitMoetWerken。 setVisible();
应该放在this.add(spelFrame,BorderLayout.CENTER);
下面。这解决了我的空窗问题。