下列程序代码是否能通过编译,如果有问题,需要修改哪里? import javax.swing.*; import java.awt.*; import java.awt.event.*; class InnerButton{ JFrame frame; JButton b; public static void main(String[] args){ InnerButton gui = new InnerButton(); gui.go(); } public void go(){ frame = new JFrame(); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); b = new JButton("A"); b.addActionListener(); frame.getContentPane().add(BorderLayout.SOUTH,b); frame.setSize(200,100); frame.setVisible(true); } class BListener extends ActionListener{ public void actionPerformed(ActionEvent e){ if(b.getText().equals("A")){ b.setText("B"); } else{ b.setText("A"); } } } }
时间: 2024-03-09 13:45:50 浏览: 18
程序代码存在编译错误,需要在 `b.addActionListener();` 方法中添加一个参数,即按钮的 ActionListener,即 `new BListener()`。修改后的代码如下:
```java
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
class InnerButton{
JFrame frame;
JButton b;
public static void main(String[] args){
InnerButton gui = new InnerButton();
gui.go();
}
public void go(){
frame = new JFrame();
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
b = new JButton("A");
b.addActionListener(new BListener());
frame.getContentPane().add(BorderLayout.SOUTH,b);
frame.setSize(200,100);
frame.setVisible(true);
}
class BListener implements ActionListener{
public void actionPerformed(ActionEvent e){
if(b.getText().equals("A")){
b.setText("B");
}
else{
b.setText("A");
}
}
}
}
```
现在程序已经能够成功编译了。