2012-04-13 10 views
-1

嘿所以我在屏幕上顯示了20個圓圈,我希望用戶只能選擇兩個圓圈並且能夠取消選擇圓圈但仍然只能選擇最多2個圓圈。我知道如何讓它一次只選擇兩個圓圈,但不能取消選擇,以及在只允許一個圓圈時如何取消選擇,現在我只是感到困惑。Java一次只允許選擇兩個畫出的圓圈,如何取消選擇

該代碼允許選擇只有兩個圈子,但我不能取消選擇的圓圈

Figur vald1 = null, vald2 = null; 

Figur fig = (Figur)mev.getSource(); 

if (vald1 == null){ 
      vald1 = fig; 
      vald1.setVald(true); 
      } 
      else if (vald2 == null && fig1 != vald1){ 
      vald2 = fig; 
      vald2.setVald(true); 
      } 

這個代碼可以讓我選擇一個圈子的時間,並取消它,但不要選擇兩個圓

if (vald1 != null) 
     vald1.setVald(false); 

     if (vald1 == fig) 
     vald1 = null; 
     else{ 
     fig.setVald(true); 
     fig.requestFocusInWindow(); 
     vald1 = fig; 
+0

我無法弄清楚你的要求。 – 2012-04-13 14:23:16

回答

2

像這樣:

Figur vald1 = null, vald2 = null; 

Figur fig = (Figur)mev.getSource(); 

vald1 = vald2; 
vald2 = fig; 

現在vald1和vald2保持2 MOR最近的圈子裏,vald1是兩個中較大的一個。

你也可以使用一個清單,這樣你可以做你喜歡儘可能多:

List<Figur> selected = new ArrayList<Figur>(); 
final static NUM_TO_KEEP = 2; 

Figur fig = (Figur)mev.getSource(); 

selected.push(fig); 

// This trims the list to only maintain the NUM_TO_KEEP elements. 
while(selected.length() > NUM_TO_KEEP) { 
    selected.remove(NUM_TO_KEEP); 
} 
+0

我想你回答了這個問題。 – 2012-04-13 14:27:57

相關問題