課程
/前端開發
/JavaScript
/JavaScript入門篇
純Java小白,很多聽不明白,這個是老師布置的課堂作業,實在做不出來,請問有人能教一下嗎,特別是點擊按鈕進行運算
2023-09-19
源自:JavaScript入門篇 1-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() {
? ? ? ? ? ? public void run() {
? ? ? ? ? ? ? ? BMI Calculator frame = new BMI Calculator();
? ? ? ? ? ? ? ? frame.setVisible(true); // 顯示窗口
}
舉報
JavaScript做為一名Web工程師的必備技術,本教程讓您快速入門
1 回答點擊按鈕 不能運行= =
1 回答這樣能實現嗎....點擊一下按鈕關閉窗口
4 回答不是很明白
2 回答代碼和別人的一模一樣,但是點擊按鈕就是出不來調用函數對話框
4 回答不運行,點擊按鈕沒反應
Copyright ? 2025 imooc.com All Rights Reserved | 京ICP備12003892號-11 京公網安備11010802030151號
購課補貼聯系客服咨詢優惠詳情
慕課網APP您的移動學習伙伴
掃描二維碼關注慕課網微信公眾號
6天前
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); // 顯示窗口
? ? ? ? ? ? }
? ? ? ? });
? ? }
}