下面是我的代码,在 JPanel里有个查询按钮。
import java.awt.*;
import javax.swing.*;
import java.awt.event.*;
public class dict extends JFrame implements ActionListener{
public dict(){
super();
getContentPane().setLayout(null);
setBounds(300,300,400,300);
setTitle("主界面");
setResizable(false);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
JPanel pan_1 = new JPanel();
pan_1.setLayout(null);
pan_1.setBounds(0, 0, 400, 250);
getContentPane().add(pan_1);
JButton btnso_1=new JButton("查询");
btnso_1.setBounds(320, 0, 60, 30);
pan_1.add(btnso_1);
btnso_1.addActionListener(this);//这里添加了监听器
}
public void actionPerformed(ActionEvent e) {
//到这里就报错了。找不到btnso_1按钮啊!报错内容看图
if(e.getSource()==btnso_1){
}
}
public static void main(String[] args) {
dict demo=new dict();
demo.setVisible(true);
}
}

------解决方案--------------------
你把那个按钮定义到方法外面去,设成全局变量。这个应该是变量的作用域的问题