1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62
| public class Main {
public static void main(String[] args) {
SwingUtilities.invokeLater(Main::builSwingApp);
}
private static void builSwingApp() {
final JTextField field1 = new JTextField();
final JTextField field2 = new JTextField();
final JLabel label = new JLabel();
final DocumentListener valueUpdater = new DocumentListener() {
@Override
public void insertUpdate(DocumentEvent e) {
updateValues(field1, field2, label);
}
@Override
public void removeUpdate(DocumentEvent e) {
updateValues(field1, field2, label);
}
@Override
public void changedUpdate(DocumentEvent e) {
updateValues(field1, field2, label);
}
};
field1.setPreferredSize(new Dimension(100, field1.getPreferredSize().height));
field1.getDocument().addDocumentListener(valueUpdater);
field2.setPreferredSize(new Dimension(100, field2.getPreferredSize().height));
field2.getDocument().addDocumentListener(valueUpdater);
label.setText("label");
final JPanel root = new JPanel();
root.add(field1);
root.add(field2);
root.add(label);
final JFrame frame = new JFrame("Test");
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setContentPane(root);
frame.pack();
frame.setVisible(true);
}
private static void updateValues(final JTextField field1, final JTextField field2, final JLabel label) {
double result = 0;
try {
final String text1 = field1.getText();
final double value1 = Double.parseDouble(text1);
result += value1;
} catch (NumberFormatException ex) {
// @todo log warning.
}
try {
final String text2 = field2.getText();
final double value2 = Double.parseDouble(text2);
result += value2;
} catch (NumberFormatException ex) {
// @todo log warning.
}
final String text = String.valueOf(result);
label.setText(text);
}
} |
Partager