我希望这是有道理的,并且有这个节目的整洁方式。我想要弄清楚如何迭代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