📜  如何检查一个人是否按下了 jframe 中的按钮 - Java (1)

📅  最后修改于: 2023-12-03 15:09:11.667000             🧑  作者: Mango

如何检查一个人是否按下了 JFrame 中的按钮 - Java

在编写 Java GUI 应用程序时,有时需要检查用户是否按下了 JFrame 中的按钮。这可以通过添加事件侦听器来实现,以便在用户按下按钮时触发事件。在本篇文章中,我们将介绍如何检查用户是否按下了 JFrame 中的按钮,并提供相应的代码示例。

添加按钮并绑定事件监听器

首先,你需要在 JFrame 中添加一个按钮,并绑定事件监听器。下面的代码演示了如何创建一个 JFrame,添加一个按钮,并绑定事件监听器:

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

public class Main extends JFrame implements ActionListener {
    private JButton button;

    public Main() {
        this.setTitle("My JFrame");
        this.setSize(400, 400);

        button = new JButton("Click me");
        button.addActionListener(this);

        this.setLayout(new FlowLayout());
        this.add(button);

        this.setVisible(true);
    }

    public void actionPerformed(ActionEvent e) {
        if (e.getSource() == button) {
            System.out.println("Button clicked");
        }
    }

    public static void main(String[] args) {
        new Main();
    }
}

在上面的代码中,我们创建了一个 JFrame,添加了一个按钮,并绑定了事件监听器。当用户按下按钮时,会触发 actionPerformed 方法,我们在这个方法中检查事件源是否为按钮,如果是,就说明按钮被按下了。

检查按钮状态

接下来,我们需要检查按钮是否被按下。为此,我们可以添加一个布尔变量来跟踪按钮状态,并在事件监听器中将其更新。下面的代码演示了如何实现这一点:

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

public class Main extends JFrame implements ActionListener {
    private JButton button;
    private boolean buttonPressed = false;

    public Main() {
        this.setTitle("My JFrame");
        this.setSize(400, 400);

        button = new JButton("Click me");
        button.addActionListener(this);

        this.setLayout(new FlowLayout());
        this.add(button);

        this.setVisible(true);
    }

    public void actionPerformed(ActionEvent e) {
        if (e.getSource() == button) {
            buttonPressed = true;
        }
    }

    public static void main(String[] args) {
        Main main = new Main();

        while (true) {
            if (main.buttonPressed) {
                System.out.println("Button pressed");

                // Reset buttonPressed to false
                main.buttonPressed = false;
            }
        }
    }
}

在上面的代码中,我们添加了一个 boolean 变量 buttonPressed,跟踪按钮的状态。在 actionPerformed 方法中,如果按钮被按下,我们将 buttonPressed 设置为 true。接着,我们在 main 方法中添加了一个无限循环,以检查按钮状态。如果 buttonPressed 被设置为 true,说明按钮被按下,我们需要执行相应的操作。然后,我们将 buttonPressed 重置为 false,以便下一次检查。

这样,我们就成功地检查了一个人是否按下了 JFrame 中的按钮。