亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定

純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
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號