public boolean mouseMoved(InputEvent event, float x, float y) {
   stageToLocalCoordinates(Vector2.tmp);
   x = Vector2.tmp.x;
   y = Vector2.tmp.y;
   if (x > 0 && x < getWidth() && y > 0 && y < getHeight()) {
     listSelectedIndex =
         (int) ((getHeight() - style.listBackground.getTopHeight() - y) / itemHeight);
     listSelectedIndex = Math.max(0, listSelectedIndex);
     listSelectedIndex = Math.min(items.length - 1, listSelectedIndex);
   }
   return true;
 }
 public boolean touchDown(InputEvent event, float x, float y, int pointer, int button) {
   if (pointer == 0 && button != 0) return false;
   stageToLocalCoordinates(Vector2.tmp);
   x = Vector2.tmp.x;
   y = Vector2.tmp.y;
   if (x > 0 && x < getWidth() && y > 0 && y < getHeight()) {
     listSelectedIndex = (int) ((getHeight() - y) / itemHeight);
     listSelectedIndex = Math.max(0, listSelectedIndex);
     listSelectedIndex = Math.min(items.length - 1, listSelectedIndex);
     selectedIndex = listSelectedIndex;
     if (items.length > 0) {
       ChangeEvent changeEvent = Pools.obtain(ChangeEvent.class);
       SelectBox.this.fire(changeEvent);
       Pools.free(changeEvent);
     }
   }
   return true;
 }