これが理にかなっており、これをよりきちんとプログラミングする方法があることを願っています。
Buttons の ArrayList と Territories の Collection があります。ArrayList を反復処理し、ボタンの各ラベルを各 Territory に含まれる int 値に設定し、対応するボタンの背景色を変更する方法を見つけようとしています。その所有者に。
長い道のりは、各ボタンのラベルを設定し、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);
}