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); } }