# mouse over in java 3d?



## blubbbla (2. Feb 2007)

wie realisiere ich ein mouse over in java 3d? zum beispiel das sich ein button ein bisschen hin und her bewegt sobald die maus sich über diesem button befindet? hab schon überall gesucht und java 3d hat kein mouse over oder? weiß aber nicht, wie ich sonst das problem angehen soll


----------



## Illuvatar (2. Feb 2007)

Du kannst nur in einem MouseMotionListener immer wieder prüfen, über welchem Objekt sich die Maus befindet. (Stichwort: "Picking")


----------



## fliegenpilz001 (5. Feb 2007)

Also ich habe das so gemacht: 

1. ich erzeuge die Objekte, also die Buttons. Jedem dieser Buttons füge ich ein Behavior hinzu, dass von PickMouseBehavior ableitet.

2. in der processMouseEvent, überprüfe ich zu dem üblichen noch ob es sich um einen Mouseover handelt und setze dann so meinen Status.


 private void processMouseEvent(MouseEvent mouseevent)
    {
        buttonPress = false;
        //501=mouseclicked
        //500=mouseMove
        if((mouseevent.getID() == 501) | (mouseevent.getID() == 500))
        {
            buttonPress = true;
            return;
        } 
        //503=mouseover
        else if(mouseevent.getID() == 503 )
        {

        	this.status=503;

            return;
        } 
        else
        {
        	//System.out.println(mouseevent.getID());
            if(mouseevent.getID() != 503);
            return;
        }
    }


3. In der process Stimulus findet dann die Action statt:


 public void processStimulus(Enumeration enumeration)
    {
     ....

       //realizeds Mouseovereffect
        else if(this.status==503)
        {

        	PickResult pickResult = null;
	        this.pickCanvas.setShapeLocation(i, j);
	       pickResult = this.pickCanvas.pickClosest();
	       if(pickResult!=null)
	      {
                  //hier muss die Aktion beim Mouseover rein
	       }

              //status zurücksetzten
              this.status=0;

     }
      [/list][/list]


----------

