Paleta de cores. É um enum? ou só um monte de static?

Olá galera. Estou pensando aqui numa maneid de montar uma paleta de cores personalizadas para um programinha aqui.

tenho assim:

Classe: PaletaDeCores
Objetos:
COR_PAGO
COR_PENDENTE
COR_MENU
COR_CEU
COR_FOGO
COR_JABOTICABA
COR_TERRA
COR_AZUL_FLUORESCENTE_ALARANJADO_ESCURO_BRILHANTE_DISCRETO

Tenho varias outras classes que seguem o mesmo modelo. Isso tem que ser um ENUM? ou eu posso usar como um monte de objeto static?

Obrigado.

Como Color no Java não é uma interface, e portanto seu enum não poderá implementar Color, talvez seja mais fácil criar vários campos estáticos. Entretanto, eu costumo a criar enums para status, já que eles contém mais do que só a cor.

Por exemplo. Um enum de estatus poderia conter, em cada elemento:
Cor da letra
Cor do fundo
Texto
Hint

Vini, brigadão, eu inclusive tenho um Enum para Status ( PAGO , NAO_PAGO, AGENDADO,…) vou fazer isso que vc falou.

Mas lembre-se que enums não servem apenas para guardar os nomes, voce pode ter métodos nele.

[quote=extreme z3r0]Olá galera. Estou pensando aqui numa maneid de montar uma paleta de cores personalizadas para um programinha aqui.

tenho assim:

Classe: PaletaDeCores
Objetos:
COR_PAGO
COR_PENDENTE
COR_MENU
COR_CEU
COR_FOGO
COR_JABOTICABA
COR_TERRA
COR_AZUL_FLUORESCENTE_ALARANJADO_ESCURO_BRILHANTE_DISCRETO

Tenho varias outras classes que seguem o mesmo modelo. Isso tem que ser um ENUM? ou eu posso usar como um monte de objeto static?

Obrigado.[/quote]

a forma mais segura de implementar isso é com um registro.

Um registro é uma classe com métodos estáticos para registrar e outros para ler.

Vc tem algo assim:


public CoresDoSistema {

    private static final Map<Object, Color> cores = new HashMap<Object, Color>();


  public static void registerColor(Object id , Color cor){
          cores.put(id,cor);
  }

 public static Cor getColor(Object id){
     return cores.get(id);
 }

}

Vc pode usa enums para os nomes das cores (os ids).
Vc pode também utilizar esquemas de cor. Ou seja, basicamente vc coloca o mapa de cores dentro de um outro objeto e registra esse objeto.
A leitura é feita delegando a esse objeto. a vantagem disto é que objetos de esquema podem ser lidos de arquivos onde é muito mais facil configurar e vc pode diferentes esquemas conforme outras regras (dia do ano, usuário, sei lá…)