纯Java小白,很多听不明白,这个是老师布置的课堂作业,实在做不出来,请问有人能教一下吗,特别是点击按钮进行运算这一块
纯Java小白,很多听不明白,这个是老师布置的课堂作业,实在做不出来,请问有人能教一下吗,特别是点击按钮进行运算
纯Java小白,很多听不明白,这个是老师布置的课堂作业,实在做不出来,请问有人能教一下吗,特别是点击按钮进行运算
2023-09-19
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); // 显示窗口
}
});
}
}
举报