2011-10-26 68 views
2

我一直在做一個遊戲,它已經持續好了,但我做了這麼亂我無法弄清楚如何實現解決功能。解決自己的難題

我生成36個按鈕,其各自被分配1-18之間的編號的兩倍,因此,有在板上的匹配對找到。每個人被點擊時會被分配一個數字圖標,如果按照正確的順序得到兩個數字,它就會顯示出來。 (記憶遊戲)

我想提取我的按鈕命令操作不點擊他們,但我犯了這樣的按鈕:

generateArray(); 
     String letters[] = {"0", "a", "b", "c", "d", "e", "f"};   
     int count = 0;    

     for (int f=1; f < 7;f++){ 

      for (int i=1; i < 7;i++){ 
       btn[i] = new JButton(letters[f]+i); 
       btn[i].setName(letters[f]+i); 
       mainGameWindow.add(btn[i]); 
       btn[i].addActionListener(this); 
       String StringCommand = Integer.toString(randomArrayNum()); 
       btn[i].setActionCommand(StringCommand); 
       count++; 
       if(count == 18){ 
        generateArray(); 
       } 
      } 
     } 

我試着運行按鈕排列在一個循環中,但它沒有提供我想要的東西。

我如何從按鈕排列的按鈕和他們的命令操作?

+3

請解釋一下你從按鈕配置獲取按鈕出來是什麼意思?你的意思是'btn'數組?你想如何按鈕,按他們的位置或分配給他們的號碼? – socha23

+0

*「我試過在一個循環中運行按鈕數組,但它沒有提供我想要的。」*你想要什麼?你得到了什麼?爲了更快地獲得更好的幫助,請發佈[SSCCE](http://sscce.org/)。 –

+0

SSCCE,未見將在未來使用。現在解決的問題謝謝。 –

回答

3

您使用btn[]的指數是不正確的,你只記住6個按鈕!

而不是btn[i]使用無處不在btn[f * 6 + i],這樣你將記住所有的按鈕。

一句忠告,你應該在0不是1開始索引,因爲Java數組的索引是從0開始。

+0

..並避免添加像'f <7'這樣的常量。取而代之的是獲得數組的大小更好;或者爲這件事情使用一個集合。 – Wivani

+0

我會那樣做Wiviani,謝謝。 –

+0

也感謝jf,知道這個數組有一些東西,但它的工作原理並沒有調查! –