import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JLabel;
import java.awt.Container;
import java.awt.BorderLayout;
import java.awt.GridLayout;
import java.text.NumberFormat;
import javax.swing.JFormattedTextField;
import java.awt.Dimension;
public class MetaboCheck extends JFrame {
double data1 = 170.5d;
double data2 = 62.5d;
JLabel label1 = new JLabel("・あなたの身長(cm)は>");
JLabel label2 = new JLabel("・あなたの体重(Kg)は>");
JLabel label3 = new JLabel("・あなたのBMI値は、");
JLabel label4 = new JLabel("");
JLabel label5 = new JLabel("・目標とするBMI値は、");
JLabel label6 = new JLabel("22.0です。");
JLabel label7 = new JLabel("・あなたの標準体重は、");
JLabel label8 = new JLabel("");
JLabel label9 = new JLabel("・摂取カロリーの目安は、");
JLabel label10 = new JLabel("");
//数値のみの入力を許すテキストフィールドを作成する(身長)
NumberFormat nf1 = NumberFormat.getNumberInstance();
JFormattedTextField text1 = new JFormattedTextField(nf1);
//数値のみの入力を許すテキストフィールドを作成する(体重)
NumberFormat nf2 = NumberFormat.getNumberInstance();
JFormattedTextField text2 = new JFormattedTextField(nf2);
public static void main(String args[]){
MetaboCheck frame = new MetaboCheck("メタボチェック");
frame.setVisible(true);
frame.setResizable(false);
}
MetaboCheck(String title){
setTitle(title);
setBounds(100, 100, 320, 240);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
JPanel metaboPanel = new JPanel();
metaboPanel.setLayout(new GridLayout(7, 2));
//身長を代入する
text1.setValue(Double.valueOf(data1));
nf1.setMaximumFractionDigits(1); // 小数点以下第一位 #####.#
text1.setPreferredSize(new Dimension(120, 20));
//体重を代入する
text2.setValue(Double.valueOf(data2));
nf2.setMaximumFractionDigits(1);
text2.setPreferredSize(new Dimension(120, 20));
JButton button1 = new JButton("計算");
button1.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
double bmi;
double weight;
double data3 = Float.parseFloat(text1.getText());
double data4 = Float.parseFloat(text2.getText());
bmi = data4 / (data3 / 100.0f) / (data3 / 100.0f);
bmi = Math.round(bmi * 10.0f);//小数点以下を四捨五入
bmi = bmi / 10.0f;
weight = (data3 / 100.0f) * (data3 / 100.0f) * 22.0f;
weight = Math.round(weight * 10.0f);
weight = weight / 10.0f;
label4.setText( bmi + "です。");
label8.setText( weight + "Kgです。");
//摂取カロリーの目安は、標準体重×(25〜30)
label10.setText( Math.round(weight * 27.5f) + "Kcalくらいです。");
}
});
JButton button2 = new JButton("終了");
button2.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
System.exit(0);
}
});
metaboPanel.add(label1);
metaboPanel.add(text1);
metaboPanel.add(label2);
metaboPanel.add(text2);
metaboPanel.add(label3);
metaboPanel.add(label4);
metaboPanel.add(label5);
metaboPanel.add(label6);
metaboPanel.add(label7);
metaboPanel.add(label8);
metaboPanel.add(label9);
metaboPanel.add(label10);
metaboPanel.add(button1);
metaboPanel.add(button2);
Container metaboPane = getContentPane();
metaboPane.add(metaboPanel, BorderLayout.CENTER);
}
}