Alex, try this code
Code:
package calcApp;
import net.rim.device.api.ui.Field;
import net.rim.device.api.ui.FieldChangeListener;
import net.rim.device.api.ui.component.ButtonField;
import net.rim.device.api.ui.component.EditField;
import net.rim.device.api.ui.component.LabelField;
import net.rim.device.api.ui.text.TextFilter;
import net.rim.device.api.ui.text.NumericTextFilter;
import net.rim.device.api.ui.container.MainScreen;
public class CalcScreen extends MainScreen implements FieldChangeListener {
EditField curIncome;
EditField level;
EditField increase;
EditField result;
ButtonField calcButton = null;
public CalcScreen() {
TextFilter numeric = new NumericTextFilter(
NumericTextFilter.ALLOW_DECIMAL);
curIncome = new EditField("Annual Income ($): ", "");
curIncome.setFilter(numeric);
add(curIncome);
level = new EditField("Performance Level: ", "");
level.setFilter(TextFilter.get(TextFilter.NUMERIC)); // no decimal
add(level);
increase = new EditField("Approved Increase (%): ", "");
increase.setFilter(numeric);
add(increase);
result = new EditField(Field.READONLY);
result.setLabel("New Annual Income: ");
result.setText("n/a");
add(result);
calcButton = new ButtonField("Calculate Increase",
ButtonField.CONSUME_CLICK);
calcButton.setChangeListener(this);
add(calcButton);
}
public void fieldChanged(Field field, int context) {
if (calcButton == field) {
float a = Float.parseFloat(curIncome.getText());
int b = Integer.parseInt(level.getText());
double c = Float.parseFloat(increase.getText()) / 100.; // percents!
double r = (a * c) / b;
add(new LabelField("New Annual Wage adjustment is " + r));
}
}
}