Body Mass Index (BMI) is measure of weight that takes height into account. Gener
ID: 3698310 • Letter: B
Question
Body Mass Index (BMI) is measure of weight that takes height into account. Generally, a BMI above 25 is considered high, that is, likely to indicate that an individual is overweight. BMI is calculated as follows for both men and women: 703 * weight in pounds / (height in inches)^2
Files BMI.java and BMIPanel.java contain skeletons for a program that uses a GUI to let the user compute their BMI. This is similar to the Fahrenheit program in listings 6.5 and 6.6 of the text.
Fill in the code as indicated by the comments and compile and run this program; you should see the BMI calculator displayed.
// ************************************************************
// BMI.java
//
// Sets up a GUI to calculate body mass index.
// ************************************************************
import javax.swing.JFrame;
public class BMI
{
// ---------------------------------------------
// Creates and displays the BMI GUI.
// ---------------------------------------------
public static void main (String[] args)
{
JFrame frame = new JFrame("BMI");
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
BMIPanel panel = new BMIPanel();
frame.getContentPane().add(panel);
frame.pack();
frame.setVisible(true);
}
}
//*************************************************************
// BMIPanel.java
//
// Computes body mass index in a GUI.
//*************************************************************
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class BMIPanel extends JPanel
{
private int WIDTH = 300;
private int HEIGHT = 120;
private JLabel heightLabel, weightLabel, BMILabel, resultLabel;
private JTextField height, weight;
private JButton calculate;
// -----------------------------------------------------------------
// Sets up the GUI.
// -----------------------------------------------------------------
public BMIPanel()
{
//create labels for the height and weight textfields
heightLabel = new JLabel ("Your height in inches: ");
weightLabel = new JLabel ("Your weight in pounds: ");
//create a "this is your BMI" label
//create a result label to hold the BMI value
//create a JTextField to hold the person's height in inches
//create a JTextField to hold the person's weight in pounds
//create a button to press to calculate BMI
//create a BMIListener and make it listen for the button to be pressed
//add the height label and height textfield to the panel
//add the weight label and weight textfield to the panel
//add the button to the panel
//add the BMI label to the panel
//add the label that holds the result to the panel
//set the size of the panel to the WIDTH and HEIGHT constants
//set the color of the panel to whatever you choose
}
// **************************************************************
// Represents an action listener for the calculate button.
// **************************************************************
private class BMIListener implements ActionListener
{
// ---------------------------------------------
// Compute the BMI when the button is pressed
// ---------------------------------------------
public void actionPerformed (ActionEvent event)
{
String heightText, weightText;
int heightVal, weightVal;
double bmi;
//get the text from the height and weight textfields
//Use Integer.parseInt to convert the text to integer values
//Calculate the bmi = 703 * weight in pounds / (height in inches)^2
//Put result in result label. Format the result to display only 1 decimal position. (.25)
}
}
}
Explanation / Answer
Try the below code, I think it may help you to an extent.
Please check your requirements after copying the below code, becoz its only the skeleton code.
PLEASE DO RATE if the below code helps to your requirement....
//*************************************************************
// BMIPanel.java
//
// Computes body mass index in a GUI.
//*************************************************************
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class BMIPanel extends JPanel
{
private int WIDTH = 300;
private int HEIGHT = 120;
private JLabel heightLabel, weightLabel, BMILabel, resultLabel;
private JTextField height, weight;
private JButton calculate;
// -----------------------------------------------------------------
// Sets up the GUI.
// -----------------------------------------------------------------
public BMIPanel()
{
//create labels for the height and weight textfields
heightLabel = new JLabel ("Your height in inches: ");
weightLabel = new JLabel ("Your weight in pounds: ");
//create a "this is your BMI" label
BMILabel = new JLabel("this is your BMI");
//create a result label to hold the BMI value
resultLabel = new JLabel("");
//create a JTextField to hold the person's height in inches
height = new JTextField(10);
add(height);
//create a JTextField to hold the person's weight in pounds
weight = new JTextField(10);
add(weight);
//create a button to press to calculate BMI
calculate = new JButton("Calculate BMI");
//create a BMIListener and make it listen for the button to be pressed
calculate.addActionListener(new BMIListener());
//add the height label and height textfield to the panel
add(heightLabel);
//add the weight label and weight textfield to the panel
add(weightLabel);
//add the button to the panel
add(calculate);
//add the BMI label to the panel
add(BMILabel);
//add the label that holds the result to the panel
add(resultLabel);
//set the size of the panel to the WIDTH and HEIGHT constants
this.setSize(WIDTH, HEIGHT);
//set the color of the panel to whatever you choose
this.setBackground(Color.GREEN);
}
// **************************************************************
// Represents an action listener for the calculate button.
// **************************************************************
private class BMIListener implements ActionListener
{
// ---------------------------------------------
// Compute the BMI when the button is pressed
// ---------------------------------------------
public void actionPerformed (ActionEvent event)
{
String heightText, weightText;
int heightVal, weightVal;
double bmi;
String bmiVal;
//get the text from the height and weight textfields
heightText = height.getText();
weightText = weight.getText();
//Use Integer.parseInt to convert the text to integer values
heightVal = Integer.parseInt(heightText);
weightVal = Integer.parseInt(weightText);
//Calculate the bmi = 703 * weight in pounds / (height in inches)^2
bmi = 703 * weightVal / (heightVal ) ^ 2;
DecimalFormat df2 = new DecimalFormat("####.##");
bmi = Double.valueOf(df2.format(bmi));
bmiVal = String.valueOf(bmi);
//Put result in result label. Format the result to display only 1 decimal position. (.25)
resultLabel.setText(bmiVal);
}
}
}