本文实例讲述了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 JRadioButton 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 FlowLayout()); 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.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<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程序设计有所帮助。
本文向大家介绍简单实现Android计算器功能,包括了简单实现Android计算器功能的使用技巧和注意事项,需要的朋友参考一下 自己写的安卓的计算器: 注:这个是在mac中开发的,如果要在windows的eclipse中运行可能会出现路径问题,解决办法从windows中已有的安卓工程根目录下复制一下classpath文件,然后复制粘贴覆盖掉这个工程根目录里面的路径文件,再导入工程应该就可以打开了。
本文向大家介绍Python PyQt5实现的简易计算器功能示例,包括了Python PyQt5实现的简易计算器功能示例的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了Python PyQt5实现的简易计算器功能。分享给大家供大家参考,具体如下: 这里剩下计算函数(self.calculator)未实现,有兴趣的朋友可以实现它 【知识点】 1、利用循环添加按钮部件,及给每个按钮设置信号/槽
本文向大家介绍基于javascript实现简单计算器功能,包括了基于javascript实现简单计算器功能的使用技巧和注意事项,需要的朋友参考一下 本文实例为大家介绍javascript实现简单计算器功能的详细代码,分享给大家供大家参考,具体内容如下 效果图: 实现代码: 希望本文所述对大家学习javascript程序设计有所帮助。
本文向大家介绍php编程实现简单的网页版计算器功能示例,包括了php编程实现简单的网页版计算器功能示例的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了php编程实现简单的网页版计算器功能。分享给大家供大家参考,具体如下: 如何通过php代码来实现一个网页版的计算器的简单功能?下面就是通过php基础知识来做的网页版计算器,功能只有“加减剩除求余”,其他的一些计算功能可扩展。 实现简单计算器的
本文向大家介绍vue实现简易计算器功能,包括了vue实现简易计算器功能的使用技巧和注意事项,需要的朋友参考一下 本文实例为大家分享了vue实现简易计算器的具体代码,供大家参考,具体内容如下 功能介绍 1、可以实现加减乘除 2、可以实现归零 3、实现退格 效果图一般般,样式随便写的,主要看功能以及实现方法 代码加解释 1、HTML部分 首先布局,把要做的样子写出来,为每一个按键绑定一个点击事件 2、
本文向大家介绍利用Javascript实现BMI计算器,包括了利用Javascript实现BMI计算器的使用技巧和注意事项,需要的朋友参考一下 前言 BMI指数(英文为Body Mass Index),是目前国际上常用的衡量人体胖瘦程度以及是否健康的一个标准,当我们需要比较及分析一个人的体重对于不同高度的人所带来的健康影响时,BMI值是一个中立而可靠的指标。本文将介绍如何用JavaScript实现