Pessoal seguinte,
no meu projeto tem dois jTextField
o certo é o usuario digitar valores.
os dois campo são, “Salario” e “Outra renda”. é isso que eu quero limitar. Se o usuario digitar algum caracter. Deve aparecer uma mensagem" Somente nnumeros…blablabla".
Nesse código, tem um detalhe que quero arrumar:
Quando os dois campos ficam vazio, aparece duas janela de mensagem, eu queria que, se somente “salario” estiver em branco ou for caracter aparecer a mensagem “campo Salario somente numero…”, e ao contrario.
[code]try{
float salario= Float.parseFloat(jTsalario.getText());
}catch(Exception erro){
JOptionPane.showMessageDialog(null,"Campo Salario deve ser preenchido somente com numeros: ");
}
try{
float outrarenda= Float.parseFloat(jToutrarenda.getText());
}catch(Exception erro){JOptionPane.showMessageDialog(null,"Campo Outra Renda Somente Numeros: ");
}[/code]
Para fazer que o jinputtext aceite so numeors eu tenho a seguinte classe
/**
* @since 01/11/2012
* @author Cristian Urbainski
*/
public class NumberInputDocument extends PlainDocument {
public NumberInputDocument() {
super();
}
@Override
public void insertString(int offs, String str, AttributeSet a) throws BadLocationException {
if(str.contains("-") || str.contains("*") || str.contains("+") || str.contains("-") || str.contains("/") || str.contains("|") || str.contains("\\")) {
return;
}
if(str.contains("!") || str.contains("@") || str.contains("#") || str.contains("$") || str.contains("%") || str.contains("¨") || str.contains("&")) {
return;
}
if(str.contains("(") || str.contains(")") || str.contains("-") || str.contains("_") || str.contains("´") || str.contains("`") || str.contains("{")) {
return;
}
if(str.contains("}") || str.contains("[") || str.contains("]") || str.contains(":") || str.contains(";") || str.contains(">") || str.contains("<")) {
return;
}
if(str.contains(",")) {
return;
}
if(str.contains(".")) {
if(getText(0, getLength()).contains(".")) {
return;
}
if(getText(0, getLength()).equals("")) {
return;
}
}
String aux[] = str.split("");
for(int i = 0; i < aux.length; i++) {
String s = aux[i];
if(s.equals("")) {
continue;
}
if(s.equalsIgnoreCase(".")) {
continue;
}
try {
Integer o = new Integer(s);
} catch (Exception e) {
return;
}
}
super.insertString(offs, str, a);
}
}
Mas ai como eu chamo essa classe para o jTextField ?
setTextField.setDocument(new NumberInputDocument());
cara, tu vai ter q mudar a estrutura desse teu tratamento ai. Tá meio confuso.
Tem várias maneiras, tu pode verificar antes se cada campo esta vazio, e fazer essa conversão pra float depois.
Ou usar 2 trycatchs independentes, fazendo uma “gambiarra” daquelas.
try{
float salario= Float.parseFloat(jTsalario.getText());
} catch(Exception erro){JOptionPane.showMessageDialog(null,"Campo Salario Somente Numeros: ");
try{
float outrarenda= Float.parseFloat(jToutrarenda.getText());
} catch(Exception erro){JOptionPane.showMessageDialog(null,"Campo Outra Renda Somente Numeros: ");
mais ou menos assim.
faltou fechamento de chaves ali nos catchs 
mr.garcialuigi, essa sua compração esta igual a minha!
é isso mesmo ?