import java.awt.FlowLayout;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;import javax.swing.JFrame;
import javax.swing.JLabel;
public class frametry 
{
JFrame jf=new JFrame();
private JLabel jl;
int x1,x2,y1,y2;
public frametry()
{
jf=new JFrame();
jf.setLayout(new FlowLayout());
jf.setBounds(200,200,200,150);
jf.setVisible(true);
jl=new JLabel();
    jf.getContentPane().add(jl);
}
public void Event()
{
jl.addMouseListener(new MouseAdapter()
{
public void MouseClicked(MouseEvent e)
{
x1=e.getX();
y1=e.getY();
System.out.print("11111");
}
});
}

public static void main(String args[])
{
new frametry();
}
}监听器里的方法不是在有动作触发后才执行的么 为什么会报MouseClicked这个方法会never used locally呢

解决方案 »

  1.   

    Event()方法跟谁学的?没必要那样写啊,在构造方法里直接为组件添加监听器就可import java.awt.FlowLayout;
    import java.awt.event.MouseAdapter;
    import java.awt.event.MouseEvent;import javax.swing.JFrame;
    import javax.swing.JLabel;public class frametry {
    JFrame jf = new JFrame();
    private JLabel jl;
    int x1, x2, y1, y2;
    public frametry() {
    jf = new JFrame();
    jf.setLayout(new FlowLayout());
    jf.setBounds(200, 200, 200, 150);
    jf.setVisible(true);
    jl = new JLabel("Test");
    jf.getContentPane().add(jl);
    jl.addMouseListener(new MouseAdapter() {
    @Override
    public void mouseClicked(MouseEvent e) {
    x1 = e.getX();
    y1 = e.getY();
    System.out.print("11111");
    }
    });
    }


    public static void main(String args[]) {
    new frametry();
    }
    }
      

  2.   

    因为public void Event() 这个 方法没有被调用过