请帮我检查以下代码有什么问题 import java.awt.*; import java.swing.*; public class Test extends JFrame implements ActionListener { public Test() { JButton jbtOK = new JButton(“OK”); getContentPane().add(jbtOK); } public void actionPerform(ActionEvent e) { if (e.getSource() == jbtOK) System.out.println(“OK button is clicked”); } }
时间: 2023-07-16 16:16:45 浏览: 129
代码有以下问题:
1. `java.awt.*` 和 `java.swing.*` 库同时导入了,这是不必要的,只需要导入 `javax.swing.*` 即可。
2. `ActionListener` 接口中的 `actionPerformed` 方法名称拼写错误,应该是 `public void actionPerformed(ActionEvent e)`。
3. `jbtOK` 按钮是在构造函数中创建的,但是在 `actionPerformed` 方法中访问不到,因为它是局部变量。解决方法是将它定义为类的成员变量。
下面是正确的代码示例:
```java
import javax.swing.*;
public class Test extends JFrame implements ActionListener {
private JButton jbtOK;
public Test() {
jbtOK = new JButton("OK");
getContentPane().add(jbtOK);
jbtOK.addActionListener(this);
}
public void actionPerformed(ActionEvent e) {
if (e.getSource() == jbtOK) {
System.out.println("OK button is clicked");
}
}
}
```
阅读全文