2015-03-11 4 views
-1

Я пытаюсь сделать игру для школы, как Puralax. Это мой первый год Java.Почему мой Jframe открывает пустое окно?

В настоящее время я тестирую через класс 'viewTest' и 'DitMoetWerken.java', чтобы сделать свой полный JFrame.

Я предполагаю, что VakUI не окрашивается, но я не знаю почему. Это должны быть квадраты в моей матрице.

Это где я называю все мои JFrames:

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 «вак» предназначается, чтобы быть квадратом на моем языке. Извините за возможные путаницы. Класс этого VakUI выглядит так, и я думаю, что моя проблема связана с paintComponent. Я думаю, что он должен просто заполнить vak's в VakUI из-за 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); 

}} 
+3

Пожалуйста, размещайте соответствующий код здесь с вашим вопросом, а не по ссылке. Обратите внимание, что ваша первая работа перед тем, как приходить сюда, - это отладка, чтобы попытаться изолировать проблему, поскольку это поможет вам ограничить код, который вы должны опубликовать, и облегчит нам понимание вашей проблемы и поможет вам. Лучше всего, если вы можете создать и опубликовать [минимальную примерную программу или MCVE] (http://stackoverflow.com/help/mcve). –

+3

Не могу увидеть ваш проект кода ... Я бы сказал, что это просто спам для службы обмена файлами ... – MadProgrammer

+2

Chit и ваша ссылка требует куки и не выглядит надежным сайтом. Плохой плохой мальчик! –

ответ

0

В классе DitMoetWerken. setVisible(); предполагается разместить под this.add(spelFrame,BorderLayout.CENTER);. это решило мою проблему с пустым окном.

Смежные вопросы