我希望這是有道理的,並且有這個節目的整潔方式。我想要弄清楚如何迭代ArrayList,並將按鈕上的每個標籤設置爲每個Territory包含的int值,然後更改這個區域的顏色。按鈕背景以對應其擁有者。ArrayList和收集問題
很長的路被設置爲每個按鈕的標籤,然後使用的if-else檢查所有者和設置正確的背景色,但是,這會導致數以百計的重複的代碼行。
btnEgy.setLabel(Territory.EGYPT.units());
if(Territory.EGYPT.getOwner().toString().equals("Player 1"))
{
btnEgy.setBackground(Color.BLUE);
}
else if(Territory.EGYPT.getOwner().toString().equals("Player 2"))
{
btnEgy.setBackground(Color.RED);
}
else if (Territory.EGYPT.getOwner().toString().equals("Player 3"))
{
btnEgy.setBackground(Color.GREEN);
}
else if (Territory.EGYPT.getOwner().toString().equals("Player 4"))
{
btnEgy.setBackground(Color.YELLOW);
}
btnEus.setLabel(Territory.E_UNITEDSTATES.units());
if(Territory.E_UNITEDSTATES.getOwner().toString().equals("Player 1"))
{
btnEus.setBackground(Color.BLUE);
}
else if(Territory.E_UNITEDSTATES.getOwner().toString().equals("Player 2"))
{
btnEus.setBackground(Color.RED);
}
else if (Territory.E_UNITEDSTATES.getOwner().toString().equals("Player 3"))
{
btnEus.setBackground(Color.GREEN);
}
else if (Territory.E_UNITEDSTATES.getOwner().toString().equals("Player 4"))
{
btnEus.setBackground(Color.YELLOW);
}
,你的問題是.... – WeMakeSoftware 2013-04-24 19:16:33
@Funtik問題是,如何避免重複的代碼。 – Smit 2013-04-24 19:17:52
什麼是'Territory.E_UNITEDSTATES','Territory.EGYPT'是枚舉? – Ilya 2013-04-24 19:19:07