Tratar Exception com dois jTextField

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 :wink:

mr.garcialuigi, essa sua compração esta igual a minha!
é isso mesmo ?