请问,怎么编辑一个一个鼠标事件,当满足事件时,鼠标监听传给响应的事件?
比如,当鼠标在某一圆形区域内点击时,这个圆形区域变成黑色 。
就是问,怎么编辑这个“鼠标在某一圆形区域内点击时”,   
                并把它传给监听端mouseClick的event?
求教各位高手,谢了先。

解决方案 »

  1.   

    定义两个类的成员变量,记录圆的区域
    this.addMouseListener(new MouseAdapter(){})
    然后再mouseClicked事件判断..........
      

  2.   

    public class Frame1 extends JFrame {
        ....
         public Frame1() {
            .....
            try{
               jbInit();
            }
            ......
         }
         private void jbInit() throws Exception  {
           ......
           this.addMouseListener(new Frame1_this_mouseAdapter(this));
         }
         void this_mousePressed(MouseEvent e) {
           ...
           //监听端mouseClick
         }
    }
    class Frame1_this_mouseAdapter extends java.awt.event.MouseAdapter {
      Frame1 adaptee;  Frame1_this_mouseAdapter(Frame1 adaptee) {
        this.adaptee = adaptee;
      }
      public void mousePressed(MouseEvent e) {
        adaptee.this_mousePressed(e);
      }
    }
      

  3.   

    我实现了一个在正方形内点击鼠标处理事件的程序,你改称圆形就可以了,另外,我想说,只要点击鼠标,单击事件肯定要触发的,你不能控制事件的触发,你只能控制事件的处理,这个程序一直在处理单击事件,但只在制定范围内才重画了窗体。
    import java.awt.event.*;
    import javax.swing.*;
    import java.awt.*;public class MouseTest extends JFrame implements MouseListener{

    int x,y;

    public MouseTest(){
    this.addMouseListener(this);
    this.setSize(400,300);
    this.setVisible(true);
    this.validate();
    }

    public void paint(Graphics g){
    super.paint(g);

    if(x<=100 && y<= 100 && x>=10 && y>=10){

       g.setColor(Color.red);
       g.fillRect(10,10,100,100);
    }
    }

    public void mouseClicked(MouseEvent e){
     x=e.getPoint().x;
     y=e.getPoint().y;

         this.repaint();


    }

    public void mouseEntered(MouseEvent e){

    }

    public void mouseExited(MouseEvent e){

    }
        public void mousePressed(MouseEvent e){

    }

    public void mouseReleased(MouseEvent e){

    }

    public static void main(String[] args){
    MouseTest mf=new MouseTest();
    }



    }