BMI.java [Last ned]

/*
 * Programmet bruker et GUI til å beregne en
 * såkalt BMI (body-mass-index).
 */
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
 
public class BMI extends JFrame implements ActionListener {
 
  JTextField txtHøyde, txtVekt, txtBMI;
  JButton    beregn, blank;
 
  public static void main(String[] args) {
    BMI vindu = new BMI();
    vindu.setSize(360,130);
    vindu.setTitle("BMI-Kalkulator");
    vindu.setDefaultCloseOperation(EXIT_ON_CLOSE);
    vindu.opprettGUI();
    vindu.setLocationRelativeTo(null);
    vindu.setVisible(true);
  }
 
  private void opprettGUI() {
    setLayout( new FlowLayout() );
 
    JLabel forklaring = new JLabel("Oppgi høyda di i cm og vekta i kg, "
                                 + "og trykk på 'Beregn BMI'");
    add(forklaring);
 
    JLabel høydeEtikett = new JLabel("Høyde (cm):");
    add(høydeEtikett);
    txtHøyde = new JTextField(8);
    add(txtHøyde);
 
    JLabel vektEtikett = new JLabel("  Vekt (kg):");
    add(vektEtikett);
    txtVekt = new JTextField(8);
    add(txtVekt);
 
    beregn = new JButton("Beregn BMI");
    beregn.addActionListener(this);
    add(beregn);
 
    txtBMI = new JTextField(12);
    add(txtBMI);
 
    blank = new JButton("Blank ut");
    blank.addActionListener(this);
    add(blank);
  }
 
  public void actionPerformed(ActionEvent e) {
    if (e.getSource() == beregn) {
      try {
        String høydeTxt = txtHøyde.getText();
        // Høyde innlest i cm, men blir omregnet til meter
        double høyde = Double.parseDouble(høydeTxt)/100.0;
        String vektTxt = txtVekt.getText();
        double vekt = Double.parseDouble(vektTxt);
        double bmi = vekt / (høyde*høyde);
        bmi = (int)(10*bmi+0.5)/10.0;  // Avrund til 1 desimal
        txtBMI.setText("BMI = " + bmi);
      }
      catch(Exception ex) {
        txtBMI.setText("Ulovlig inndata!");
      }
    }
    else if (e.getSource() == blank) {
      txtBMI.setText("");
      txtHøyde.setText("");
      txtVekt.setText("");
    }
  }
 
}
Kildekode blir vist ved hjelp av GeSHi.