700字范文,内容丰富有趣,生活中的好帮手!
700字范文 > JAVA-通过身高体重计算BMI判断人的体型(体型计算器版)

JAVA-通过身高体重计算BMI判断人的体型(体型计算器版)

时间:2024-01-13 14:53:14

相关推荐

JAVA-通过身高体重计算BMI判断人的体型(体型计算器版)

这次我们结合我上两篇关于简易计算器界面设计和通过BMI判断人的体型的文章来写一个“体型计算器”(我们初学者要学会综合的、系统的、规范的利用所学知识,完成需求)。同样,相关步骤给出注释以方便大家交流学习。

代码:

import java.awt.BorderLayout;import java.awt.Dimension;import java.awt.FlowLayout;import java.awt.Font;import java.awt.GridLayout;import java.awt.Insets;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import javax.swing.*;abstract class People{int weight;int height;public People(int weight, int height) {this.weight = weight;this.height = height;}abstract public float stature();public String drawResult() {System.out.println("体重:"+this.weight+"(KG) 身高:"+this.height+"(cm)");String drawresult = new String();float statureResult = this.weight/this.stature()-1;if(statureResult>=-0.1&&statureResult<=0.1) {drawresult = "标准";}else if (statureResult<-0.1) {drawresult ="偏瘦";}else if (statureResult>0.1) {drawresult ="偏重";}else {drawresult = "啥,应该不会运行到这里吧?";}return drawresult;};}class Woman extends People {Woman(int w, int h){super(w, h);}@Overridepublic float stature() {//女性:(身高cm-70)×60﹪=标准体重return (float) ((this.height-70.0)*0.6);}}class Man extends People {Man(int w, int h){super(w, h);}@Overridepublic float stature() {//男性:(身高cm-80)×70﹪=标准体重return (float) ((this.height-80.0)*0.7);}}public class CalculatorBody extends JFrame {public CalculatorBody() {// 创建窗口final JFrame JWindow = new JFrame("体型计算器:");// 设置为流动布局,居中 水平间距为0 垂直间距为6JWindow.setLayout(new FlowLayout(1,0,6)); // 设置窗体尺寸为 宽340 高 240JWindow.setSize(340,240);// 设置窗口相对于指定组件的位置。如果组件当前未显示或者 null,则此窗口将置于屏幕的中央。JWindow.setLocationRelativeTo(null);//用户单击窗口的关闭按钮时程序执行的操作 WindowConstants.EXIT_ON_CLOSE 代表关闭退出JWindow.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);// 不可以改变大小JWindow.setResizable(false); // 设置字体// Font FontInfo = new Font("宋体", Font.PLAIN, 20);// 创建容器JPanel Panel = new JPanel(new GridLayout(0,1));// 定义按钮面板,并设置为网格布局,3列JPanel HeightPanel2 = new JPanel(new GridLayout(0,3));JPanel WeightPanel3 = new JPanel(new GridLayout(0,3));JPanel SexPanel4 = new JPanel(new GridLayout(0,3));JPanel ButtonPanel5 = new JPanel(new GridLayout(0,2));JPanel LablePanel6 = new JPanel(new GridLayout(0,2));JLabel CalculatorLable = new JLabel();CalculatorLable.setText("体型计算器");Panel.add(CalculatorLable);JLabel HeightLable = new JLabel();HeightLable.setText("Your height:");HeightPanel2.add(HeightLable);//创建输入高度文本框JTextArea HeightJText = new JTextArea(1,6);HeightJText.setPreferredSize(new Dimension(100,30));//HeightJText.setBorder(BorderFactory.createLineBorder(Color.black,1)); HeightPanel2.add(HeightJText);//身高单位标签JLabel CmLabel = new JLabel();CmLabel.setText("CM");HeightPanel2.add(CmLabel);JLabel WeightLabel = new JLabel();WeightLabel.setText("Your Weight:");WeightPanel3.add(WeightLabel);//创建输入体重文本框JTextArea WeightJText = new JTextArea(1,6);WeightJText.setPreferredSize(new Dimension(100,30));WeightPanel3.add(WeightJText);JLabel Kglabel = new JLabel();Kglabel.setText("KG");WeightPanel3.add(Kglabel);JLabel SexLabel = new JLabel();SexLabel.setText("Your Sex:");SexPanel4.add(SexLabel);ButtonGroup buttonGroup1 = new ButtonGroup();JRadioButton RadioButtonWoman = new JRadioButton();JRadioButton RadioButtonMan = new JRadioButton();RadioButtonWoman.setSelected(true);RadioButtonWoman.setText("女");RadioButtonWoman.setMargin(new Insets(0, 0, 0, 0));RadioButtonMan.setText("男");RadioButtonMan.setMargin(new Insets(0, 0, 0, 0));buttonGroup1.add(RadioButtonMan);buttonGroup1.add(RadioButtonWoman);SexPanel4.add(RadioButtonWoman);SexPanel4.add(RadioButtonMan);JLabel StatureLabel = new JLabel();StatureLabel.setText("Your Stature:");LablePanel6.add(StatureLabel);JLabel StatureLabelInfo = new JLabel();LablePanel6.add(StatureLabelInfo);JButton Okbutton = new JButton();JButton Cancelbutton = new JButton();Okbutton.setText("OK");Cancelbutton.setText("Cancel");//OK按钮新增监听事件。Okbutton.addActionListener(new ActionListener() {@Overridepublic void actionPerformed(ActionEvent e) {if (RadioButtonWoman.isSelected()) {StatureLabelInfo.setText(new Woman(Integer.parseInt(HeightJText.getText()), Integer.parseInt(WeightJText.getText())).drawResult());} else {StatureLabelInfo.setText(new Man(Integer.parseInt(HeightJText.getText()), Integer.parseInt(WeightJText.getText())).drawResult());}}});Cancelbutton.addActionListener(new ActionListener() {@Overridepublic void actionPerformed(ActionEvent e) {JWindow.dispose();}});ButtonPanel5.add(Okbutton);ButtonPanel5.add(Cancelbutton);// Panel顶部JWindow.getContentPane().add(Panel,BorderLayout.NORTH);// Panel中部JWindow.getContentPane().add(HeightPanel2,BorderLayout.CENTER);JWindow.getContentPane().add(WeightPanel3,BorderLayout.CENTER);JWindow.getContentPane().add(SexPanel4,BorderLayout.CENTER);JWindow.getContentPane().add(LablePanel6,BorderLayout.CENTER);// Panel 设置到底部JWindow.getContentPane().add(ButtonPanel5,BorderLayout.SOUTH);JWindow.setVisible(true);}public static void main(String[] args) {// TODO Auto-generated method stubCalculatorBody calculator = new CalculatorBody();}}

实现效果:

(请忽略博主的体型......)

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。