Java Swing实现简单的体重指数(BMI)计算器功能示例

网友投稿 781 2023-03-06


Java Swing实现简单的体重指数(BMI)计算器功能示例

本文实例讲述了java Swing实现简单的体重指数(BMI)计算器功能。分享给大家供大家参考,具体如下:

BMI,Body Mass Index,身体质量指数,是用体重公斤数 除以 身高米数平方得出的,是目前国际上常用的衡量人体胖瘦程度以及是否健康的一个标准。

而本文通过运用Java Swing实现了一个简单的BMI计算器。虽然现在网页上也有相应的网页应用,但是能够做出这个计算器来,还是有点成就感的,希望自己以后做出更多比这个好的应用。

最终运行效果:

功能:可以选择三个标准:中国、亚洲、WHO,计算结果稍有不同

计算公式:BMI = weight / (height*height)   即 体重公斤数 除以 身高米数平方

package WeightIndex;

import javax.swing.*;

import javax.swing.border.EmptyBorder;

import java.awt.*;

import java.awt.event.*;

import java.text.DecimalFormat;

import java.util.regex.*;

public class WeightIndex extends JFrame {

/**

*

*/

private static final long serialVersionUID = 1L;

private JPanel contentPane;

private JLabel titleLabel;

private JPanel contentPanel;

private JButton submitButton;

private ButtonGroup bg;

private JPanel sexPanel;

private JRSQkfRzadioButton ChinaRadio;

private JRadioButton AsiaRadio;

private JRadioButton WHORadio;

private JPanel whPanel;

private JLabel heightLabel;

private JLabel weightLabel;

private JTextField heightText;

private JTextField weightText;

private JPanel consolePanel;

private JLabel consoleLabel;

private JTextField consoleText;

private double weight;

private double height;

private double BMI;

/**

* Launch the application.

*/

public static void main(String[] args) {

EventQueue.invokeLater(new Runnable() {

public void run() {

try {

WeightIndex frame = new WeightIndex();

frame.pack();

frame.setVisible(true);

} catch (Exception e) {

e.printStackTrace();

}

}

});

}

/**

* Create the frame.

*/

public WeightIndex() {

setTitle("我们 - 身高体重指数计算器v1.0");

setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

setBounds(100, 100, 450, 300);

//主容器

contentPane = new JPanel();

contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));

contentPane.setLayout(new BorderLayout(0, 0));

setContentPane(contentPane);

//标题,主容器北

titleLabel = new JLabel("身高体重指数计算器");

titleLabel.setHorizontalAlignment(SwingConstants.CENTER);

contentPane.add(titleLabel, BorderLayout.NORTH);

//存放选项的panel,主容器中

contentPanel = new JPanel();

contentPanel.setLayout(new BorderLayout());

contentPane.add(contentPanel,BorderLayout.CENTER);

//提交按钮,主容器南

submitButton = new JButton("计算");

contentPane.add(submitButton, BorderLayout.SOUTH);

//存放性别选择的panel,选项北

bg = new ButtonGroup();

sexPanel = new JPanel();

sexPanel.setLayout(new FlowLayhttp://out());

contentPanel.add(sexPanel,BorderLayout.NORTH);

ChinaRadio = new JRadioButton("中国标准");

ChinaRadio.setSelected(true);

AsiaRadio = new JRadioButton("亚洲标准");

WHORadio = new JRadioButton("WHO(世界卫生组织)标准");

bg.add(ChinaRadio);

bg.add(AsiaRadio);

bg.add(WHORadio);

sexPanel.add(ChinaRadio);

sexPanel.add(AsiaRadio);

sexPanel.add(WHORadio);

//存放身高体重的panel,选项中

whPanel = new JPanel();

whPanel.setLayout(new FlowLayout());

contentPanel.add(whPanel,BorderLayout.CENTER);

heightLabel = new JLabel("身高(米/m):");

weightLabel = new JLabel("体重(千克/kg):");

heightText = new JTextField(10);

heightText.setToolTipText("请输入身高");

weightText = new JTextField(10);

weightText.setToolTipText("请输入体重");

whPanel.http://add(heightLabel);

whPanel.add(heightText);

whPanel.add(weightLabel);

whPanel.add(weightText);

//结果

consolePanel = new JPanel();

consolePanel.setLayout(new FlowLayout());

consoleLabel = new JLabel("你的身体质量指数为:");

consoleText = new JTextField(28);

consoleText.setEditable(false);

consolePanel.add(consoleLabel);

consolePanel.add(consoleText);

contentPanel.add(consolePanel,BorderLayout.SOUTH);

submitButton.addActionListener(new ActionListener(){

public void actionPerformed(ActionEvent e) {

String hstr = heightText.getText();

String wstr = weightText.getText();

Pattern pattern = Pattern.compile("^[0-9]+(.[0-9]+)?$");

Matcher hisNum = pattern.matcher(hstr);

Matcher wisNum = pattern.matcher(wstr);

boolean acc = true;

if( !hisNum.matches()|| !wisNum.matches()){

acc = false;

}

if(acc)

{

height = Double.parseDouble(hstr);

weight = Double.parseDouble(wstr);

BMI = weight / (height*height);

DecimalFormat df = new DecimalFormat("#.0");

String out = "";

if(ChinaRadio.isSelected())

{

if(BMI<18.5)

out = "偏瘦,瘦骨嶙峋的,多吃点吧!";

else if(BMI<23.9)

out = "正常,棒棒哒!";

else if(BMI<28)

out = "偏胖,你胖你就运动减肥!";

else if(BMI>=28)

out = "肥胖,现在减肥来的及!";

else

out ="外星人派来的你哦,请重新输入!";

}

else if(AsiaRadio.isSelected())

{

if(BMI&http://lt;18.5)

out = "偏瘦,瘦骨嶙峋的,多吃点吧!";

else if(BMI<22.9)

out = "正常,棒棒哒!";

else if(BMI<24.9)

out = "偏胖,你胖你就运动减肥!";

else if(BMI<30)

out = "肥胖,现在减肥来的及!";

else if(BMI>=30)

out = "重度肥胖,不是一般人,赶紧减肥吧!";

else

out ="外星人派来的你哦,请重新输入!";

}

else

{

if(BMI<18.5)

out = "偏瘦,瘦骨嶙峋的,多吃点吧!";

else if(BMI<24.9)

out = "正常,棒棒哒!";

else if(BMI<29.9)

out = "偏胖,你胖你就运动减肥!";

else if(BMI<34.9)

out = "肥胖,现在减肥来的及!";

else if(BMI<39.9)

out = "重度肥胖,不是一般人,赶紧减肥吧!";

else if(BMI>=40)

out = "极重度肥胖,那可能得去医院看看咯!";

else

out ="外星人派来的你哦,请重新输入!";

}

consoleText.setText("你的指数为:"+df.format(BMI)+",你的健康状况为:"+out);

}

}

});

}

}

更多关于java算法相关内容感兴趣的读者可查看本站专题:《Java数据结构与算法教程》、《Java操作DOM节点技巧总结》、《Java文件与目录操作技巧汇总》和《Java缓存操作技巧汇总》

希望本文所述对大家java程序设计有所帮助。


版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:应用api 网关(api网关的优缺点)
下一篇:在线api管理软件(api管理是什么)
相关文章

 发表评论

暂时没有评论,来抢沙发吧~