Bonjour,
Lassé des fuites mémoires du C, je fait ce soir mes 1er pas en Java. Je viens d'installer eclipse et de trouver tout un tat de tutoriels mais... a part le hello word en console, aucun ne marche...
Mon objectif 1er est de créer une fenetre avec rien dessus. juste une fenetre.
j'ai le code suivant :
et une 1er erreur a la ligne
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 import javax.swing.*; import java.awt.event.*; /** * @author steph * */ public class page1 extends JFrame { /** * @param args */ public void page1() { super("page 1"); WindowListener l = new WindowAdapter() { public void windowClosing(WindowEvent e) { System.exit(0); } }; addWindowListener(l); setSize(200,100); setVisible(true); } public static final long serialVersionUID = 1; public static void main(String[] args) { // TODO Auto-generated method stub JFrame frame = new page1(); System.out.println("yop"); } }
erreur : Constructor call must be the first statement in a constructor...
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 super("page 1");
D'apres ce que j'ai compris, ce "super" sert a appeler le constructeur de la class parente (vu que je dérive de JFrame, je suppose que mon parametre correspond dans mon cas au titre de la fenetre).
Mon constructeur est donc bien le 1er truc appelé dans ma méthode, et je comprend vraiment pas pourquoi il me met une erreur...
Quelqu'un pourrait m'expliquer ?
ps : vraiment désolé pour le niveau de la question... j'y connais vraiment rien en Java, et je peux pas faire une recherche google sans avoir 10 abréviations (ou noms de plugins) que je connais par ligne.
- - - edit - - -
J'ai trouvé ça en cherchant de l'aide sur mon erreur :
J'ai donc enlevé la ligne qui m'ennuyais, et j'ai testé... L'erreur disparait (pourquoi???) et le programme se lance.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 //============ Constructor (same as in above example) public Point(int x, int y) { super(); // Automatically done if you don't call constructor here. m_x = x; m_y = y; }
Il m'affiche "yop" dans la console, mais pas de fenetre...
De plus, je vien de remarquer qu'en mettant dans le main un frame.show(), pouf, ma fenetre apparait avec des dimensions nulles. J'ai donc également sorti le setsize et pouf, la fenetre s'affiche avec les bonnes dimensions. J'en vien a penser que le constructeur ne marche pas du tout... cela veut dire qu'il n'a pas instancié mon listener non plus ? (lui, impossible de le sortir, il reconnais plus le type sinon)
y me barre aussi mon show et me dit que c'est "deprecated"... seulement, c'est la seule chose qui marche que j'ai trouvé :/
Je sentais bien que j'allais pas être copain avec java :p
Partager