📅  最后修改于: 2023-12-03 15:09:11.667000             🧑  作者: Mango
在编写 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 中的按钮。