一区二区三区在线-一区二区三区亚洲视频-一区二区三区亚洲-一区二区三区午夜-一区二区三区四区在线视频-一区二区三区四区在线免费观看

服務器之家:專注于服務器技術及軟件下載分享
分類導航

PHP教程|ASP.NET教程|JAVA教程|ASP教程|編程技術|正則表達式|C/C++|IOS|C#|Swift|Android|JavaScript|易語言|

服務器之家 - 編程語言 - JAVA教程 - Java Swing實現簡單的體重指數(BMI)計算器功能示例

Java Swing實現簡單的體重指數(BMI)計算器功能示例

2021-03-04 10:21Hisom JAVA教程

這篇文章主要介紹了Java Swing實現簡單的體重指數(BMI)計算器功能,涉及Java Swing窗口組件布局、響應及數值運算相關操作技巧,需要的朋友可以參考下

本文實例講述了Java Swing實現簡單的體重指數(BMI)計算器功能。分享給大家供大家參考,具體如下:

BMI,Body Mass Index,身體質量指數,是用體重公斤數 除以 身高米數平方得出的,是目前國際上常用的衡量人體胖瘦程度以及是否健康的一個標準。

而本文通過運用Java Swing實現了一個簡單的BMI計算器。雖然現在網頁上也有相應的網頁應用,但是能夠做出這個計算器來,還是有點成就感的,希望自己以后做出更多比這個好的應用。

最終運行效果:

Java Swing實現簡單的體重指數(BMI)計算器功能示例

功能:可以選擇三個標準:中國、亞洲、WHO,計算結果稍有不同

計算公式:BMI = weight / (height*height)   即 體重公斤數 除以 身高米數平方

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
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程序設計有所幫助。

原文鏈接:http://blog.csdn.net/u010992313/article/details/72083337

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 极品美女aⅴ高清在线观看 极品ts赵恩静和直男激战啪啪 | 女人狂吮男人命根gif视频 | 欧美一级视频在线高清观看 | 成年人视频在线 | 波多在线| 国产99精品成人免费视频 | 明星乱淫 | 欧美亚洲影院 | 男人天堂网av | 日韩一区国产二区欧美三 | 国产亚洲一欧美一区二区三区 | 亚洲 日韩经典 中文字幕 | 欧美色精品天天在线观看视频 | 国产精品免费久久久久影院 | 成全动漫视频在线观看 | 激情婷婷成人亚洲综合 | 2019午夜福合集高清完整版 | 日韩在线视频免费不卡一区 | 睡男神的这件小事小说在线阅读 | 精品免费久久久久久成人影院 | 色天天综合色天天碰 | 18岁的老处女 | 大学生宿舍飞机 free | 91制片厂 果冻传媒 天美传媒 | 日韩一区二区三区精品 | 95在线观看精品视频 | 男人狂躁女人下半身 | 禁止的爱善良的未删减版hd | 国内亚州视频在线观看 | 性一交一无一伦一精一品 | 久久99精国产一区二区三区四区 | 国产青青操 | 99精品国产美女福到在线不卡 | 99视频在线观看视频一区 | 亚洲精品中文 | 99精品视频在线观看免费播放 | 德国高清freexxxx性 | 四虎麻豆 | 国产精彩视频 | 禁止的爱善良的未删减版hd | 天堂中文在线免费观看 |