Oui, ton code fonctionne bien. Mais n'oublie pas que VK_ corresponds au chiffre pas au touche de ton pavé numérique, mais à celle au dessus du clavier principale.
Celle pour le pavé numérique c'est :
Code:KeyEvent.VK_NUMPAD1
Version imprimable
Oui, ton code fonctionne bien. Mais n'oublie pas que VK_ corresponds au chiffre pas au touche de ton pavé numérique, mais à celle au dessus du clavier principale.
Celle pour le pavé numérique c'est :
Code:KeyEvent.VK_NUMPAD1
Merci en effet j'essayais d'entrer un chiffre au pad, alors que la programme n'autorise que ceux au dessus du clavier.
Une autre question qui normalement devrait être la dernière, comment je peux faire pour que l'utilisateur puisse vider la case qu'il a sélectionné, à partir du menu édition?
Ou plutôt que dois-je mettre pour que mon menu édition fonctionne?
Code:
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
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225 import java.awt.Dimension; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import javax.swing.ImageIcon; import javax.swing.JButton; import javax.swing.JFrame; import javax.swing.JMenu; import javax.swing.JMenuBar; import javax.swing.JMenuItem; import javax.swing.JPanel; /** * @author Administrateur * * TODO Pour changer le modèle de ce commentaire de type généré, allez à * : Fenêtre - Préférences - Java - Style de code - Modèles de code */ public class Menu extends JMenuBar implements ActionListener { static int X; static int Y; Interface map; JMenu m1; JMenu m2; JMenu m3; JMenu m4; JMenu m5; JMenu m6; JMenuItem m12; JMenuItem m121; JMenuItem m122; JMenuItem m123; JMenuItem m222; JMenuItem m331; JMenuItem m332; JMenuItem m441; JMenuItem m442; JMenuItem m541; JMenuItem m542; JMenuItem m543; public Menu(Interface map) { super(); this.map = map; m1 = new JMenu("Nouvelle grille"); m2 = new JMenu("Solutionner Grille"); m3 = new JMenu("Générer une grille"); m4 = new JMenu("Fonctions supplémentaires"); m5 = new JMenu("Aide"); m6 = new JMenu("Edition"); m121 = new JMenuItem("Niveau fort"); m122 = new JMenuItem("Niveau moyen"); m123 = new JMenuItem("Niveau faible"); m12 = new JMenuItem("Sélectionner dans une liste"); m121.addActionListener(this); m122.addActionListener(this); m123.addActionListener(this); m12.addActionListener(this); m222 = new JMenuItem("Vider la Grille"); m222.addActionListener(this); m1.add(m222); m331 = new JMenuItem("Afficher la solution"); m331.addActionListener(this); m2.add(m331); m332 = new JMenuItem("Cacher la solution"); m332.addActionListener(this); m2.add(m332); m332.setEnabled(false); m441 = new JMenuItem("Copier grille dans le presse-papier"); m441.addActionListener(this); m4.add(m441); m442 = new JMenuItem("Imprimer Grille+Solution"); m442.addActionListener(this); m4.add(m442); m541 = new JMenuItem("Intro"); m541.addActionListener(this); m5.add(m541); m542 = new JMenuItem("Afficher les regles"); m542.addActionListener(this); m5.add(m542); m543 = new JMenuItem("Supprimer"); m541.addActionListener(this); m5.add(m541); m3.add(m121); m3.add(m122); m3.add(m123); m3.addSeparator(); m3.add(m12); m5.add(m541); m5.add(m542); m6.add(m543); this.add(m1); this.add(m2); this.add(m3); this.add(m4); this.add(m5); this.add(m6); // PERMET DE DESACTIVER CERTAINS ELEMENTS PAR DEFAUT } public void actionPerformed(ActionEvent evt) { // PERMET D'eviter une ecriture de chiffre par erreur map.ecouteur.carre = null; if (evt.getSource() == m121) { // map.cherchernouvellesgrilles(); map.supanel.selection(3); } else if (evt.getSource() == m122) { // map.testersinouvellegrille(); map.supanel.selection(2); } else if (evt.getSource() == m123) { map.supanel.selection(1); } else if (evt.getSource() == m222) { map.supanel.vidergrille(); // map.supanel.cherchernouvellesgrilles(); } else if (evt.getSource() == m331) { if (map.supanel.solutionnergrille()) { m331.setEnabled(false); m332.setEnabled(true); } } else if (evt.getSource() == m332) { map.supanel.cachersolution(); m331.setEnabled(true); m332.setEnabled(false); } else if (evt.getSource() == m541) { new window(500, 500, 1); } else if (evt.getSource() == m542) { new window(800, 500, 2); } else if (evt.getSource() == m542) { } // ECRITURE DANS PRESSE PAPIER else if (evt.getSource() == m441) { if (map.getSudoku().getTableaufinal() != null) { ecriturepressepapier(map.getSudoku().getTableaufinal()); } else { ecriturepressepapier(map.getSudoku().getGrille()); } } // IMPRESSION else if (evt.getSource() == m442) { JFrame frame = new JFrame("Aperçu avant Impression"); frame.setSize(new Dimension(305, 640)); Fond supanelreponse1 = new Fond(map.map, map); Fond supanelreponse2 = new Fond(map.map, map); supanelreponse1.impressionapartirdetableau(map.sudoku.grille); if (map.supanel.solutionnergrille()) { System.out.println("GRILLE"); map.sudoku.afficher(map.sudoku.grille); System.out.println("REPONSE"); map.sudoku.afficher(map.sudoku.tableaufinal); supanelreponse2 .impressionapartirdetableau(map.sudoku.tableaufinal); // CONTENTPANEL JPanel contentPanel = (JPanel) frame.getContentPane(); contentPanel.setLayout(null); supanelreponse1.setBounds(0, 0, 300, 300); contentPanel.add(supanelreponse1); supanelreponse2.setBounds(0, 301, 300, 300); contentPanel.add(supanelreponse2); frame.setContentPane(contentPanel); frame.setVisible(true); MPanelPrinter mp = new MPanelPrinter(contentPanel); mp.print(); map.supanel.cachersolution(); frame.dispose(); } } map.requestFocus(); } public void ecriturepressepapier(int[][] tableau) { String temp = ""; for (int i = 0; i < tableau.length + 2; i++) { temp += "#"; } temp += "\n"; for (int i = 0; i < tableau.length; i++) { temp += "#"; for (int e = 0; e < tableau[i].length; e++) { if (tableau[i][e] != 0) { temp += Integer.toString(tableau[i][e]); } else { temp += " "; } } temp += "#\n"; } for (int i = 0; i < tableau.length + 2; i++) { temp += "#"; } map.getMpp().setClipboardContents(temp); } }
Surtout un grand merci à kolodz et joel drigo pour vos conseils et assistance.
Je vous souhaite une bonne soirée.