Bonjour,
en phase d'apprentisage de JAVA
je teste un tout petit code java, mais je crois que j'ai mal compris le fonctionnement de frame et dialog
je n'arrive pas à m'en sortir.
L'idée est simple :
-->interface YES/NO
---> YES ---> quitter
---> No ---> dialogbox ---> indique juste qu'on a appuyer sur no et retour
voilà ce que j'ai fait :
et la compilation javac :
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 import java.awt.BorderLayout; import java.awt.Button; import java.awt.Dialog; import java.awt.Dimension; import java.awt.FlowLayout; import java.awt.Frame; import java.awt.Label; import java.awt.Panel; import java.awt.Window; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.awt.event.WindowAdapter; import java.awt.event.WindowEvent; import javax.swing.JButton; import javax.swing.JComponent; import javax.swing.JDialog; import javax.swing.JLabel; /* * imports des éléments java */ public class testframedialog { public class testframedialog extends Frame { /* * juste pour tester mais semble necessaire d'appliquer un numéro de * version */ private static final long serialVersionUID = 1L; testframedialg() { super("AWT"); Label msgLabel = new Label("Quit?"); Button yesButton = new Button("Yes"); Button noButton = new Button("No"); Panel buttonbox = new Panel(); buttonbox.setLayout(new FlowLayout()); buttonbox.add(yesButton); buttonbox.add(noButton); /* * pannel des boutons YES/NO */ final Panel msgbox = new Panel(); msgbox.setLayout(new FlowLayout()); msgbox.add(msgLabel); /* * affiche le "quit ?" */ add(msgbox, BorderLayout.NORTH); add(buttonbox, BorderLayout.SOUTH); /* * gerer la disposition des labels */ yesButton.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { System.exit(0); /* * juste pour quitter proprement avec un exit 0 */ } }); noButton.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { Dialog frame = null; final JDialog dialog = new JDialog(frame,"test"); JLabel label = new JLabel("<html><p align=center>TEST<br>"); label.setHorizontalAlignment(JLabel.CENTER); JButton closeButton = new JButton("Close"); closeButton.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { dialog.setVisible(false); dialog.dispose(); /* * libere la dialog-box */ } }); /* * ajoute une deuxieme boite de dialog pour retour */ dialog.setSize(new Dimension(300, 150)); dialog.setLocationRelativeTo(frame); dialog.setVisible(true); } }); /* * faire agir le bouton "no" */ addWindowListener(new WindowAdapter() { public void windowClosing(WindowEvent e) { System.exit(0); } }); /* * juste pour gerer la cloture de la fenetre par la croix de * l'interface graphique utilisateur */ } } } /* * corp de programme commence ici construit et affice la frame ci dessus */ public void main(String[] args) { testframedialog frame = new testframedialog(); frame.pack(); frame.setVisible(true); }
dans un premier j'ai pensé à une erreur d'indentation (par fermeture confondue entre un "}" et un "});" par exemple
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 test_frame$ javac testframedialog.java testframedialog.java:32: invalid method declaration; return type required testframedialg() { ^ testframedialog.java:99: illegal start of type }); ^ testframedialog.java:109: class, interface, or enum expected public void main(String[] args) { ^ testframedialog.java:111: class, interface, or enum expected frame.pack(); ^ testframedialog.java:112: class, interface, or enum expected frame.setVisible(true); ^ testframedialog.java:113: class, interface, or enum expected } ^ 6 errors
Mais visiblement cela n'a rien à voir...
Merci pour votre aide, je n'ai pas trouvé mon bonheur sur les tutos...
Pour info :
je suis sous linux avec eclipse et les jdk sun
Partager