你可以在panel1中的button的mouseclick()事件中设置一个boolean变量,然后在panel2的鼠标拖动事件中,用if判断当这个变量为true时,执行下面的操作。

解决方案 »

  1.   

    呵呵, Ivor Horton 的 Beginning Java2 
    里面有一个例子,功能还马马虎虎
      

  2.   

    我觉得不用先点Button,然后再启动panel2的mousemotionlistener。
    可以在程序一开始就设定一个Button,例如画直线的button1,为当前选中的,使它的外观为下凹的,button2为上凸的。这时panel2的mousemotionlistener中执行的是画直线的功能。此后,根据用户的选择,使两个Button交替为选中(下凹)和未选中(上凸),并在panel2的事件响应中相应执行相应操作。
      

  3.   

    jButton1.setBorder(new BevelBorder(BevelBorder.RAISED));
    jButton1.setBorder(new BevelBorder(BevelBorder.LOWERED));
      

  4.   

    设置button的border类型就可以设置凹凸效果