java图形界面编程之模拟血压计


在Java中创建一个模拟血压计的图形界面程序,你可以使用Swing库来构建GUI(图形用户界面)。以下是一个简单的示例,它创建了一个包含两个标签(显示高压和低压)和两个按钮(模拟测量和重置)的窗口。

请注意,这个示例不会连接到实际的血压计硬件,而是使用随机值来模拟测量结果。


import javax.swing.*;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

public class BloodPressureSimulator extends JFrame {

    private JLabel highBloodPressureLabel;
    private JLabel lowBloodPressureLabel;
    private JButton measureButton;
    private JButton resetButton;

    public BloodPressureSimulator() {
        setTitle("模拟血压计");
        setSize(300, 200);
        setLocationRelativeTo(null); // 窗口居中
        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

        // 创建组件
        highBloodPressureLabel = new JLabel("高压: 0 mmHg", SwingConstants.CENTER);
        lowBloodPressureLabel = new JLabel("低压: 0 mmHg", SwingConstants.CENTER);
        measureButton = new JButton("测量");
        resetButton = new JButton("重置");

        // 布局设置
        setLayout(new GridLayout(3, 1));
        add(highBloodPressureLabel);
        add(lowBloodPressureLabel);

        JPanel buttonPanel = new JPanel();
        buttonPanel.add(measureButton);
        buttonPanel.add(resetButton);
        add(buttonPanel);

        // 添加事件监听器
        measureButton.addActionListener(new ActionListener() {
            @Override
            public void actionPerformed(ActionEvent e) {
                simulateMeasurement();
            }
        });

        resetButton.addActionListener(new ActionListener() {
            @Override
            public void actionPerformed(ActionEvent e) {
                resetMeasurement();
            }
        });
    }

    private void simulateMeasurement() {
        // 使用随机数模拟测量结果
        int high = (int) (Math.random() * 100 + 100); // 假设高压在100-199 mmHg之间
        int low = (int) (Math.random() * 60 + 40);    // 假设低压在40-99 mmHg之间

        highBloodPressureLabel.setText("高压: " + high + " mmHg");
        lowBloodPressureLabel.setText("低压: " + low + " mmHg");
    }

    private void resetMeasurement() {
        highBloodPressureLabel.setText("高压: 0 mmHg");
        lowBloodPressureLabel.setText("低压: 0 mmHg");
    }

    public static void main(String[] args) {
        SwingUtilities.invokeLater(new Runnable() {
            @Override
            public void run() {
                new BloodPressureSimulator().setVisible(true);
            }
        });
    }
}

这段代码创建了一个名为`BloodPressureSimulator`的类,它继承自`JFrame`。在构造器中,我们初始化了窗口和组件,并设置了它们的布局和事件监听器。`simulateMeasurement`方法用于模拟血压测量结果,而`resetMeasurement`方法用于重置血压值为0。最后,在`main`方法中,我们通过`SwingUtilities.invokeLater`确保GUI的创建和更新在事件调度线程(EDT)上执行。