Bonjour,

J'ai écrit une interface graphique dans laquelle je souhaite utiliser une méthode. Le mot clé static (ainsi que public (je n'en ai pas besoin)) pose un problème. Quand je met le mot clé static, le compilateur dit :
Syntax error on token(s), misplaced construct(s). Malheureusement, j'ai besoin de ce mot clé vu que, lors de l'utilisation de la méthode, il me dit également d'utiliser static...
J'ai donc cherché sans mon livre ce que veut dire static : indique que la méthode est une méthode de classe. Mais je ne comprend pas ceci, pouvez-vous m'aider svp?

pour mieux que vous voyez comment se placent les erreurs de la classe Chemin, je joins ci-dessous les screens : avec le mot clé static, et sans.

Nom : Capture d’écran 2020-03-15 à 14.23.00.png
Affichages : 721
Taille : 72,5 KoNom : Capture d’écran 2020-03-15 à 14.23.22.png
Affichages : 529
Taille : 64,6 Ko

voici Maintenant mon code.

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
package ch.mathias.truelle;
 
public class Chemin {
 
	public static int lequelSeraPris = 0;
 
	public static String [] prochaine;
	public static String [] favoriti;
 
	favoriti = new String [] {"comment m'appelle-on?"};
 
	prochaine = new String [] {"Nooon. regarde. M.A.T.H.I.A.S!"};
 
 
 
	static void rep() { // méthode qui bloque
 
		TruelleGame.lab.setText(prochaine[lequelSeraPris]);
		lequelSeraPris++;
 
	}
	static void quest() { // et celle-ci également
	TruelleGame.lab.setText(favoriti[lequelSeraPris]);
 
 
	}
}
 
 
package ch.mathias.truelle;
 
import java.awt.Color;
import java.awt.Dimension;
import java.awt.BorderLayout;
import java.awt.event.*;
import javax.swing.*;
 
public class TruelleGame {
 
	public static JLabel lab = new JLabel();
 
	public static void main(String[] args) {
 
		JButton btnOui = new JButton("Oui");
		JButton btnNon = new JButton("Non");
		JButton btnOk = new JButton("Ok");
 
		JTextField enter = new JTextField();
 
		JPanel starter = new JPanel();
		JPanel questions = new JPanel();
		JPanel basBtn = new JPanel();
 
		JFrame frame = new JFrame("Booon.");
		frame.setVisible(true);
		frame.setLocationRelativeTo(null);
		frame.setSize(200, 70);
		frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		frame.add(starter);
 
 
		JButton depart = new JButton("C'est parti, cliquez");
		depart.setBackground(Color.red);
		depart.setVisible(true);
 
		starter.add(depart, BorderLayout.CENTER);
 
		basBtn.add(btnOui);
		basBtn.add(btnNon);
		basBtn.add(btnOk);
		btnOui.setVisible(false);
		btnNon.setVisible(false);
		lab.setVisible(true);
		enter.setVisible(true);
 
		questions.add(basBtn, BorderLayout.SOUTH);
		questions.add(enter, BorderLayout.CENTER);
		questions.add(lab, BorderLayout.NORTH);
 
		enter.setPreferredSize(new Dimension (100,20));
 
		depart.addActionListener(new ActionListener() {
 
			@Override
			public void actionPerformed(ActionEvent e) {
 
				frame.setTitle("Vous avez 10 secondes pour répondre.");
				frame.setSize(400,200);
				frame.add(questions);
				questions.setVisible(true);
 
				starter.setVisible(false);
				Chemin.quest();
			}
		});
 
	}
 
}
Comme je ne savais pas si le problème était lié à la méthode elle-même, ou au reste du code, j'ai créé un projet avec méthode pour "m'entraîner".
Le plus bizarre, c'est que ça fonctionne... alors même que j'utilise le mot clé static!
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
package ch.mathias.elephant;
 
public class LAmethodeDell {
 
	static int result;
 
	static void mesure(int corps, int queue) {
 
		result = corps + queue;
		System.out.println("la longeur de l'éléfant est de : "+ result + " mètres.");
 
	}
 
}
package ch.mathias.elephant;
 
import java.util.Scanner;
 
public class Suspens {
 
	public static void main(String[] args) {
 
		int corps = 0;
		int queue = 0;
 
		Scanner sc = new Scanner(System.in);
 
		System.out.println("pour connaître la longueur d'un éléphant, indiquez d'abord son corps, puis sa queue. (en mètres)");
 
		corps = sc.nextInt();
		queue = sc.nextInt();
 
		LAmethodeDell.mesure(corps, queue);
 
	}
 
}