public void setSelect(Point p, boolean b) {
   // 如果是拖动,则要优化一下,以提高效率
   if (b) {
     // 表示是否能返回,不用比较完所有的标签,能返回的标志就是把上一个标签和
     // 将要显示的标签找到了就可以了
     boolean findPrevious = false, findNext = false;
     for (MyLabel m : list) {
       if (m.contains(p)) {
         findNext = true;
         if (m.getIsSelected()) {
           findPrevious = true;
         } else {
           m.setSelected(true, b);
         }
       } else if (m.getIsSelected()) {
         findPrevious = true;
         m.setSelected(false, b);
       }
       if (findPrevious && findNext) {
         return;
       }
     }
   } else {
     MyLabel temp = null;
     for (MyLabel m : list) {
       if (m.contains(p)) {
         temp = m;
       } else if (m.getIsSelected()) {
         m.setSelected(false, b);
       }
     }
     if (temp != null) {
       temp.setSelected(true, b);
     }
   }
 }