Bonjour,
Ça fait un moment maintenant que je suis coincé :/
Avant de vous expliquer mon problème je vous présente d'abord mon code pour que mes explications soient plus claires

Voici mon main:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
package maBatailleNavale;
 
import java.util.Scanner;
 
 
///On import la classe random
import java.util.Random;
 
 
public class Main_Bataille {
    public static void main(String[ ] args) {
 
        Scanner n = new Scanner(System.in);
        Scanner n1 = new Scanner(System.in);
 
        ///On initialise toutes les variables memes celles que l'utilisateur doit rentrer
 
        /// Random est la fonction qui choisit au hasard les coordonnées de la cible
        Random rand = new Random();
        String boucle = "oui";
        Erreur_Entree ErreurStr = new Erreur_Entree();
 
        Erreur_Entree Erreur_boucle = new Erreur_Entree();
 
        while(boucle.equals("oui"))
        {
            /// On demande a l'utilisateur d'entrée la taille du terrain
            String message_grille = "Entrez le nombre de carreaux du coté de la grille svp";
            int grille = 0 ;
            boolean erreur = true;
            Erreur_Entree ErreurInt = new Erreur_Entree();
            grille = ErreurInt.Erreur_int(message_grille, erreur, grille, n);
            while(grille > 100)
            {
                System.out.println("Je suis désolé mais votre grille est trop grande.");
                grille = ErreurInt.Erreur_int(message_grille, erreur, grille, n);
            }
            System.out.println(grille);
 
            /// On donne des valeurs aleatoires aux coordonnées de la cible
            int a = rand.nextInt(grille);
            int b = rand.nextInt(grille);
            int x = grille + 1;
            int y = grille + 1;
            int essaie = 0;
 
            /// On demande a l'utilisateur d'entrer une limite de coups
            int limite2 = 0;
            String message_limite = "Veuillez entrer la limite de tentative que vous pouvez faire";
            limite2 = ErreurInt.Erreur_int(message_limite, erreur, limite2, n);
            int limite = 1;
            String rep_liste[] = {"oui","non"};
 
            String rep = "oui";
            String rep2;
            int reussit = 0;
            int compris = 1;
            Fen_Inter fen = new Fen_Inter();
 
 
            //On crée la boucle principale du jeu
            while (rep.equals("oui"))
            {
                essaie = essaie + 1;
                System.out.println("À vous de jouer");
 
                while (x > grille)
                {
 
                    String message_x = "Entrez x: ";
                    x = ErreurInt.Erreur_int(message_x, erreur, x, n);
                    if(x>grille)
                    {
                        System.out.println("Désolé, ce chiffre est trop grand");
                    }
                }
 
                while (y > grille)
                {
                    String message_y = "Entrez y: ";
                    y = ErreurInt.Erreur_int(message_y, erreur, y, n);
                    if(y>grille)
                    {
                        System.out.println("Désolé, ce chiffre est trop grand");
                    }
                }
 
 
                if (x == a && y == b) {
                    System.out.println("Touché");
                    reussit = 1;
                    break; }
 
                else if (x == a || y == b) {
 
                    if (x == a+1 && y == b){
 
                        System.out.println("En Vue");}
 
                    else if ((a==x || a==x-1 || a==x+1) && (b==y || b==y+1 || b==y-1)){
                        System.out.println("En Vue");}
 
                    }
 
                else {
                    System.out.println("A l'eau");
                }
 
                if (limite == limite2)
                {
                    System.out.println("Désolé mais vous avez atteint la limite de coups joués.");
                    break;
                }
                ///On demande a l'utilisateur si il veut rejouer
                System.out.println("Voulez vous rejouer oui/non ? ");
                rep2 = n1.nextLine();
 
                /// Tant que l'utilisateur n'entre pas oui ou non on lui redemande s'il veut rejouer
                /// Pour comprendre comment marche l'objet Erreur_Entree voir sur le deuxieme .java
                rep2 = ErreurStr.Erreur_str(compris,  rep2, rep_liste, n1);
                if (rep2.equals("non")){
                    break;
                }       
 
                limite = limite + 1;
 
                /// Si l'utilisateur atteint la limite qu'il s'était fixé on stoppe le jeu et on l'informe
                /// qu'il a perdu
 
 
                x = grille + 1 ;
                y = grille + 1;
 
            }
        System.out.println("Partie terminée \n");
 
        /// Si l'utilisateur a réussit on lui indique en combien de coups
        if (reussit == 1){
            System.out.println("Vous avez réussit en " + essaie + " coups");}
 
        compris = 1;
 
        System.out.println("Voulez vous faire une nouvelle partie (oui/non) ?");
        boucle = n1.nextLine();
        boucle = Erreur_boucle.Erreur_str(compris,  boucle, rep_liste, n1);
 
        }
        System.out.println("Au revoir");
 
 
    n.close();
    n1.close();
    }
}
Voici la classe que j'ai appelé Erreur_Entree:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
/// On crée ici des fonctions gérant les erreurs , on ne les crée pas dans la partie principale du programme pour éviter que ce soit trop lourd
package maBatailleNavale;
 
import java.util.Scanner;
 
public class Erreur_Entree {
 
    ///On crée la methode principale qui ne contient rien
    public Erreur_Entree()
    {
 
    }
 
    /// On crée une methode
 
    /// On demande a l'utilisatuer d'entrée une variable compris qui dit si le programme reconnait la reponse
    /// une variable rep2 qui contient la réponse de l'utilisateur et un tableau rep_liste qui 
    /// contient toutes les reponses attendus
    public String Erreur_str(int compris, String rep2,String rep_liste[],Scanner n1) {
 
        /// Tant que le programme ne reconnait pas la reponse il demande a l'utilisateur de 
        /// recommencer
        while (compris == 1){
            for ( int c = 0; c <=1; c++ )
            {
                if (rep_liste[c].equals(rep2))
                {
                    compris = 0;
                }
            }
            if (compris == 0)
            {
                break;
            }
            System.out.println("Je suis désolé mais je n'ai pas compris \n Veuillez a nouveau me dire si vous voulez jouer");
            rep2 = n1.nextLine();
 
        }
        return rep2;
    }
 
        ///On crée une methode gerant les erreurs si un utlisisateur entre une chaine de caractère
        ///au lieu d'entrée un chiffre
 
        public int Erreur_int(String message,boolean erreur , int grille, Scanner n){
 
            do {
                erreur = false;
                try {
                    System.out.println(message);
                    grille = n.nextInt();
                } catch (java.util.InputMismatchException e) {
                    System.out.println("Désolé mais ceci n'est pas un chiffre valide.");
                    erreur = true;
                }finally{
                    n.nextLine();
                }
            } while (erreur);
            return grille;
        }
 
    }
La classe Fen_Inter:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
package maBatailleNavale;
 
import javax.swing.JFrame;
 
 
 
public class Fen_Inter extends JFrame {
 
 
 
    public Fen_Inter(){                
        this.setTitle("Bataille Navale");
        this.setSize(517, 539);
        this.setLocationRelativeTo(null);               
        this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        this.setContentPane(new Panel());
 
 
    this.setVisible(true);
  }     
}
et enfin la classe Panel:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
package maBatailleNavale;
 
import java.awt.Graphics;
 
import javax.swing.JPanel;
 
public class Panel extends JPanel { 
 
    public void paintComponent(Graphics g){
 
        super.paintComponent(g);
        for(int i = 0; i <= 10; i++) {
            g.drawLine(500*i/10,0,500*i/10,500);
            g.drawLine(0,500*i/10,500,500*i/10);
        }
 
            }
 
 
}
Je voudrai simplement pouvoir importer la variable grille de mon main dans ma classe panel
et créer une methode qui créera des carrés dans la fenêtre dès que l’appellerai (j'aimerai pouvoir l'utilisé depuis mon main).

Pourriez vous m'aider a résoudre ce problème ?

Merci d'avance pour votre aide