“Erreur de syntaxe sur gage *********, annotationName prévu après ce jeton”
je vais avoir deux erreurs, je ne peux pas résoudre, google ne me donne pas une idée claire de ce qu'était le problème.
Je reçois de la compilation de deux erreurs, l'une sur la ligne
Random random = new Random();
juste après l' ;, en disant: { prévu. L'erreur suivante est à cette ligne
public void newGame() {
disant "erreur de Syntaxe sur jeton newGame, annotationName prévu après ce jeton". Qu'est-ce que cela signifie? J'ai un extra } en bas de mon code, le compilateur (Eclipse) se plaint si j'enlève ce. Il dit } prévu sur la dernière } si je le supprime.
Tous les pointeurs dans le bon sens est la bienvenue, mais pas de spoonfeeding s'il vous plaît. 🙂 Je veux apprendre. Si je suis en rupture de java convention n'importe où, veuillez le signaler également. Merci!
code entier:
import java.awt.*;
import java.io.*;
import javax.swing.*;
import java.util.Random;
public class Memory {
File folder = (new File("mypictures"));
File[] pictures = folder.listFiles();
ImageIcon im = new ImageIcon();
Card[] allCards;
Random random = new Random();
for(int i = 0; i < im.length; i++) {
allCards[i] = new Card(new ImageIcon(pictures[i].getPath()));
}
public void newGame() {
int row = Integer.parseInt
(JOptionPane.showInputDialog("How many rows?"));
int column = Integer.parseInt
(JOptionPane.showInputDialog("How many columns?"));
Card[] game = new Card[row*column];
for(i = 0; i < game.length; i++) {
int ranint = random.nextInt(game.length);
game[i] = allCards[ranint];
Card c = game[i].copy();
game[i+game.length/2] = c;
}
for(i = 0; i < 5; i++) { //Randomizing a few times.
Tools.randomOrder(game);
}
JFrame jf = new JFrame("Memory");
jf.setLayout (new GridLayout (row, column));
for(i = 0; i < game.length; i++) { //Adds the cards to our grid.
jf.add(game[1]);
}
}
}
}
- Quand pensez-vous que
for
boucle, au milieu du corps de la classe, doit être exécuté? Pourquoi pensez-vous ainsi? - Pourquoi la boucle
for(int i = 0; i < im.length; i++)
pas dans une méthode?
Vous devez vous connecter pour publier un commentaire.
Votre première boucle doit être mis à l'intérieur d'une méthode de la classe. Dans le cas où vous souhaitez que la boucle sera exécutée lors de la création d'un objet de cette classe, vous devez écrire un constructeur méthode comme ceci:
Cependant, vous ne pouvez pas affecter des valeurs à un tableau de cette façon, parce
allCards
est juste une variable vide holdingnull
. Vous devez initialiser la variable comme ceci:Le problème, c'est la première boucle for. En Java, on ne peut pas juste mettre le code en vertu d'une classe, il doit être dans une méthode, constructeur ou un bloc anonyme. Depuis, cela semble intinialization code, un constructeur semble approprié:
allCards
doit être initialisé première