2013-04-02 31 views
0

在我的代碼的不同部分,我將運行的一個類似的變種:內部類的ActionListener

 _grid[4][4].addActionListener(new ActionListener() { 

     @Override 
     public void actionPerformed(ActionEvent e) { 
      moveBeginningPieceLeft(_square[4][11]); 
      refreshBoard(); 
     } 

    }); 

,這將改變是_grid的座標的唯一的事情。我早些時候做過一些事情,我做了一個actionlistener,但是eclipse強迫我讓整數最終。我想知道是否很容易編寫addListener方法來使用它所調用的網格值(_grid是一個JButton數組,而_square是一個數組堆棧)。所以,如果我在_grid [2] [5]上調用addListener,它只需要_grid的座標[2] [5]並放置在actionlistener的_square部分。所以,

_grid[0][5].addListener(); 

相同

 _grid[0][5].addActionListener(new ActionListener() { 

     @Override 
     public void actionPerformed(ActionEvent e) { 
      moveBeginningPieceLeft(_square[0][5]); 
      refreshBoard(); 
     } 

    }); 
+1

除非它自己擁有座標的對象。在你的情況沒有。你將不得不依賴於_grid和_square範圍內的兩個索引變量。 –

回答

1

我想知道,如果它很容易編寫使用,它被稱爲對電網的 值的方法的addListener( _grid是一個數組 JButtons和_square是堆棧數組)。

  • 沒有有沒有

我試着做一些早期在那裏我做了一個ActionListener,但 蝕迫使我作出最後的整數。通過使用put/getClientProperty,你可以多重這種方法與其他的附加價值

  • 爲更好地幫助越早後需要vasriable

    • 聲明爲局部變量的最多最簡單的方式

    • 例子一個SSCCE,短,可運行,可編譯,減少,只有約JButtons網格

    +0

    對於[示例](http://stackoverflow.com/a/7706684/230513)。 – trashgod