@@ -192,24 +192,30 @@ public void actionPerformed( ActionEvent e )
192192 {
193193 public void actionPerformed ( ActionEvent e )
194194 {
195- Pattern patNumero = Pattern .compile ( "[0-9]+" );
195+ Pattern patNumero = Pattern .compile ( "[+-]?[ 0-9]+" );
196196
197197 if ( fieldNome .getText ( ).equals ( "" ) )
198198 labelError .setText ( "Campo Nome está em branco" );
199199 else if ( fieldCA .getText ( ).equals ( "" ) )
200200 labelError .setText ( "Campo CA está em branco" );
201201 else if ( !patNumero .matcher ( fieldCA .getText ( ).toString ( ) ).matches ( ) )
202202 labelError .setText ( "Campo CA precisa conter somente números" );
203+ else if ( !isInteger ( fieldCA .getText ( ).toString ( ) ) )
204+ labelError .setText ( "Esse número de CA está grande demais" );
203205 else if ( fieldClasse .getText ( ).equals ( "" ) )
204206 labelError .setText ( "Campo Classe está em branco" );
205207 else if ( fieldBonusIni .getText ( ).equals ( "" ) )
206208 labelError .setText ( "Campo de Bonus de Iniciativa está em branco" );
207209 else if ( !patNumero .matcher ( fieldBonusIni .getText ( ).toString ( ) ).matches ( ) )
208210 labelError .setText ( "Campo de Bonus de Iniciativa precisa conter somente números" );
211+ else if ( !isInteger ( fieldBonusIni .getText ( ).toString ( ) ) )
212+ labelError .setText ( "Esse número de Bonus de Iniciativa está grande demais" );
209213 else if ( fieldHP .getText ( ).equals ( "" ) )
210214 labelError .setText ( "Campo HP está em branco" );
211215 else if ( !patNumero .matcher ( fieldHP .getText ( ).toString ( ) ).matches ( ) )
212216 labelError .setText ( "Campo HP precisa conter somente números" );
217+ else if ( !isInteger ( fieldHP .getText ( ).toString ( ) ) )
218+ labelError .setText ( "Esse número de HP está grande demais" );
213219 else
214220 {
215221 String imagem = "" ;
@@ -267,4 +273,16 @@ else if ( !patNumero.matcher( fieldHP.getText( ).toString( ) ).matches( ) )
267273 }
268274 } );
269275 }
276+
277+ public static Boolean isInteger ( String valor )
278+ {
279+ try
280+ {
281+ Integer .parseInt ( valor );
282+ return true ;
283+ } catch ( NumberFormatException ex )
284+ {
285+ return false ;
286+ }
287+ }
270288}
0 commit comments