-
Notifications
You must be signed in to change notification settings - Fork 0
/
Options.java
159 lines (135 loc) · 4.48 KB
/
Options.java
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
import javax.swing.*;
import java.awt.*;
/**
* Classe <code>Options</code>
* permet de récupérer les options pour la partie
* @author Yvan
* @version 1.0
*/
public class Options extends JFrame {
/**
* Label d'erreur sur la hauteur
*/
private JLabel hauteurErr;
/**
* Label d'erreur sur la largeur
*/
private JLabel largeurErr;
/**
* Label d'erreur sur le nombre de bombes
*/
private JLabel bombesErr;
/**
* Entrée de la hauteur
*/
protected JTextField hauteur;
/**
* Entrée de la largeur
*/
protected JTextField largeur;
/**
* Entrée du nombre de bombes
*/
protected JTextField bombes;
protected int l;
protected int h;
protected int b;
/**
* Initialisation de la classe Options
*/
public Options(){
this.setSize(600,500);
this.setTitle("Démineur - Options");
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
this.hauteurErr = new JLabel("");
this.largeurErr = new JLabel("");
this.bombesErr = new JLabel("");
this.hauteurErr.setForeground(Color.RED);
this.largeurErr.setForeground(Color.RED);
this.bombesErr.setForeground(Color.RED);
GridLayout fenMgr = new GridLayout(5,1);
this.setLayout(fenMgr);
Dimension txtDim = new Dimension(100, 30);
JLabel titre = new JLabel("Options de la partie");
titre.setHorizontalAlignment(JLabel.CENTER);
this.add(titre);
JPanel hauteurPanel = new JPanel();
this.hauteur = new JTextField();
JLabel hauteurLb = new JLabel("Hauteur:");
this.hauteur.setPreferredSize(txtDim);
hauteurPanel.add(hauteurLb);
hauteurPanel.add(this.hauteur);
hauteurPanel.add(this.hauteurErr);
this.add(hauteurPanel);
JPanel largeurPanel = new JPanel();
this.largeur = new JTextField();
JLabel largeurLb = new JLabel("Largeur:");
this.largeur.setPreferredSize(txtDim);
largeurPanel.add(largeurLb);
largeurPanel.add(this.largeur);
largeurPanel.add(this.largeurErr);
this.add(largeurPanel);
JPanel bombesPanel = new JPanel();
this.bombes = new JTextField();
JLabel bombesLb = new JLabel("Bombes:");
this.bombes.setPreferredSize(txtDim);
bombesPanel.add(bombesLb);
bombesPanel.add(this.bombes);
bombesPanel.add(this.bombesErr);
this.add(bombesPanel);
JButton confirmer = new JButton("Confirmer");
JPanel bouton = new JPanel();
confirmer.addActionListener(new MenuListener(this));
bouton.add(confirmer);
this.add(bouton);
this.setVisible(true);
}
/**
* Permet de vérifier les champs s'ils sont correctes ou non.
* Si non correcte affichera une erreur
* @return true si les champs sont correctes sinon false
*/
public boolean verifyFields(){
boolean valid = true;
/* Largeur */
try {
this.l = Integer.parseInt(largeur.getText());
if (4 > this.l || this.l >= 31){
valid = false;
this.largeurErr.setText("La largeur doit être comprise entre 4 et 30");
} else {
this.hauteurErr.setText("");
}
} catch (NumberFormatException e){
this.largeurErr.setText("Ce n'est pas un nombre !!!");
valid = false;
}
/* Hauteur */
try {
this.h = Integer.parseInt(hauteur.getText());
if (4 > this.h || this.h >= 31){
valid = false;
this.hauteurErr.setText("La hauteur doit être comprise entre 4 et 30");
} else {
this.hauteurErr.setText("");
}
} catch (NumberFormatException e){
this.hauteurErr.setText("Ce n'est pas un nombre !!!");
valid = false;
}
/* Bombes */
try {
this.b = Integer.parseInt(bombes.getText());
if (1 > this.b || this.b >= this.l * this.h){
valid = false;
this.bombesErr.setText("Le nombre de bombes ne doit pas dépasser le nombres de cases !");
} else {
this.bombesErr.setText("");
}
} catch (NumberFormatException e){
this.bombesErr.setText("Ce n'est pas un nombre !!!");
valid = false;
}
return valid;
}
}