Pintou uma dúvida meio besta aqui, pois há um tempão que não lido com isso: Eu preciso ter TODOS JTexfields responsivos, ou seja, a cada digitação do usuário num campo, uma(ou mais) fórmula(s) será(ão) executada, e um campo em outro formulário será atualizado.
Por exemplo, em dois JTextFields para atualizar uma fórmula:
final JTextField areaEdField=new JTextField(6);
final JTextField areaTotField=new JTextField(9);
areaEdField.getDocument().addDocumentListener(new DocumentListener(){
String s;
public void insertUpdate(DocumentEvent e){
if(areaEdField.getText()!=null&&areaTotField.getText()!=null){
BigDecimal decimalEdificada = new BigDecimal(areaEdField.getText());
decimalEdificada = decimalEdificada.setScale(4, RoundingMode.HALF_UP);
BigDecimal decimalTerreno = new BigDecimal(areaTotField.getText());
decimalTerreno = decimalTerreno.setScale(4, RoundingMode.HALF_UP);
BigDecimal result=decimalEdificada.divide(decimalTerreno,4,RoundingMode.HALF_UP);
s=String.valueOf(result);
fracaoIdeal.setText(s);
}
else
fracaoIdeal.setText("1.00");
}
public void removeUpdate(DocumentEvent e){
s = areaEdField.getText();
if(s.length() < 1)
fracaoIdeal.setText("1.00");
}
public void changedUpdate(DocumentEvent e){}
});//fim da inner class de areaEdField
areaTotField.getDocument().addDocumentListener(new DocumentListener(){
String s;
public void insertUpdate(DocumentEvent e){
if(areaEdField.getText()!=null&&areaTotField.getText()!=null){
BigDecimal decimalEdificada = new BigDecimal(areaEdField.getText());
decimalEdificada = decimalEdificada.setScale(4, RoundingMode.HALF_UP);
BigDecimal decimalTerreno = new BigDecimal(areaTotField.getText());
decimalTerreno = decimalTerreno.setScale(4, RoundingMode.HALF_UP);
BigDecimal result=decimalEdificada.divide(decimalTerreno,4,RoundingMode.HALF_UP);
s=String.valueOf(result);
fracaoIdeal.setText(s);
}
else
fracaoIdeal.setText("1.00");
}
public void removeUpdate(DocumentEvent e){
s = areaTotField.getText();
if(s.length() < 1)
fracaoIdeal.setText("1.00");
}
public void changedUpdate(DocumentEvent e){}
});//fim da inner class de areaTotField


