为了账号安全,请及时绑定邮箱和手机立即绑定

纯Java小白,很多听不明白,这个是老师布置的课堂作业,实在做不出来,请问有人能教一下吗,特别是点击按钮进行运算这一块

纯Java小白,很多听不明白,这个是老师布置的课堂作业,实在做不出来,请问有人能教一下吗,特别是点击按钮进行运算https://img1.sycdn.imooc.com//65091645000159f609900579.jpg

正在回答

1 回答

import javax.swing.*;

import java.awt.*;

import java.awt.event.ActionEvent;

import java.awt.event.ActionListener;


public class BMI Calculator extends JFrame {

    // 定义界面组件

    private JLabel nameLabel, genderLabel, heightLabel, weightLabel, resultLabel;

    private JTextField nameField, heightField, weightField;

    private JRadioButton maleRadio, femaleRadio;

    private JButton calculateButton;


    public BMI Calculator() {

        // ---------- 1. 初始化窗口 ----------

        setTitle("BMI 计算器");       // 窗口标题

        setSize(400, 300);          // 窗口大小

        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); // 关闭窗口时退出程序

        setLayout(new GridLayout(6, 2, 10, 10)); // 网格布局:6行2列,间距10像素


        // ---------- 2. 创建组件 ----------

        // 标签

        nameLabel = new JLabel("姓名:");

        genderLabel = new JLabel("性别:");

        heightLabel = new JLabel("身高(cm):");

        weightLabel = new JLabel("体重(kg):");

        resultLabel = new JLabel("结果:");


        // 输入框

        nameField = new JTextField();

        heightField = new JTextField();

        weightField = new JTextField();


        // 单选按钮(男/女)

        maleRadio = new JRadioButton("男");

        femaleRadio = new JRadioButton("女");

        ButtonGroup genderGroup = new ButtonGroup(); // 单选按钮组,确保二选一

        genderGroup.add(maleRadio);

        genderGroup.add(femaleRadio);

        maleRadio.setSelected(true); // 默认选“男”


        // 计算按钮

        calculateButton = new JButton("计算");


        // ---------- 3. 添加组件到窗口 ----------

        add(nameLabel); add(nameField);

        add(genderLabel); 

        JPanel genderPanel = new JPanel(); // 用面板装两个单选按钮,避免布局混乱

        genderPanel.add(maleRadio);

        genderPanel.add(femaleRadio);

        add(genderPanel);

        add(heightLabel); add(heightField);

        add(weightLabel); add(weightField);

        add(calculateButton); add(resultLabel);


        // ---------- 4. 给“计算”按钮添加点击事件 ----------

        calculateButton.addActionListener(new ActionListener() {

            @Override

            public void actionPerformed(ActionEvent e) {

                try {

                    // 获取输入的身高(转成米)和体重

                    double height = Double.parseDouble(heightField.getText()) / 100;

                    double weight = Double.parseDouble(weightField.getText());

                    // 计算BMI

                    double bmi = weight / (height * height);

                    // 判断体型

                    String status;

                    if (bmi < 18.5) {

                        status = "偏瘦";

                    } else if (bmi < 24) {

                        status = "正常";

                    } else {

                        status = "偏胖";

                    }

                    // 显示结果

                    resultLabel.setText("BMI:" + String.format("%.2f", bmi) + ",体型:" + status);

                } catch (NumberFormatException ex) {

                    // 处理输入非数字的情况

                    resultLabel.setText("请输入有效的身高和体重!");

                }

            }

        });

    }


    public static void main(String[] args) {

        // 在 Swing 中,GUI 操作要放在事件调度线程(EDT)中

        SwingUtilities.invokeLater(new Runnable() {

            @Override

            public void run() {

                BMI Calculator frame = new BMI Calculator();

                frame.setVisible(true); // 显示窗口

            }

        });

    }

}


0 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

纯Java小白,很多听不明白,这个是老师布置的课堂作业,实在做不出来,请问有人能教一下吗,特别是点击按钮进行运算这一块

我要回答 关注问题
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号