Question

Alors, pour une raison quelconque lorsque je tente d'utiliser une boucle pour initialiser les panneaux en échiquier, il boucle la boucle en fait elle-même. En d'autres termes, il ne va pas éternellement, mais il commence et termine encore et encore.

package chessgame;
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
public class ChessGame extends JFrame implements ActionListener{

    public static final int WIDTH=800;
    public static final int HEIGHT=800;

    public static void main(String[] args) {
        ChessGame gui = new ChessGame();
        gui.setVisible(true);
    }
    public ChessGame(){
        super("Chess Game Demo");
        setSize(WIDTH, HEIGHT);
        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        setLayout(new GridLayout(8,8));
        JPanel[] chessSquares = new JPanel[64];
        for (int a=0;a<64;a++){
            System.out.println(a);
        }
    }
}

J'ai inclus tous les codes potentiellement pertinents parce que je prévois d'utiliser des indices de chessSquares aux carrés de couleur en noir et blanc. Quand je fais cela, je reçois aussi un NullPointerException. Je comprends pourquoi on me donne que l'erreur suivante, mais je ne peux pas tout comprendre pourquoi serait imprimé 0, 1 .... 62, 63, encore et encore. Je suis relativement nouveau Swing et ont absolument aucune idée pourquoi il le fait. Si quelqu'un pourrait expliquer cela serait extrêmement utile. Merci.

Était-ce utile?

La solution

Ne pas mettre l'initialisation significative dans le constructeur de ChessGame, mais passer outre frameInit. Quand vous faites, aussi être sûr d'appel super.frameInit(). Voir javadoc ou ce tutoriel .

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top