import javax.swing.JPanel;
import javax.swing.JFrame;
import java.awt.event.MouseEvent;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseListener;
public class A
{
C c;
B b;
String msg="ooo";
JFrame jf;
public void init()
{
c=new C(this);
b=new B(c);
jf=new JFrame("测试");
jf.add(b);
jf.pack();
jf.setVisible(true);
}
public static void main(String[] args)
{
A a=new A();
a.init();
}
}
class B extends JPanel
{
C c;
// B需要调用c中的方法
public B(C c)
{
this.c=c;
addMouseListener(new MouseAdapter()
{
public void mouseClicked(MouseEvent me)
{
c.send();
System.out.println("");
}
});
}
}
class C
{
A a;
private String str="我在这";
//C需要调用A中的变量
public C(A a)
{
this.a=a;
}
public void send()
{
System.out.println(str+" "+a.msg);
}
}
我把我的程序简化了一下 恩错误就是 从内部类中访问局部变量要声明为最终类型 那如果不升鸣为最终类型有木有解决办法 |