Caros UJ.
Estou precisando invocar um método de um objeto cujo nome será informado em tempo de execução. Algo como: jMenuItemCliente, jMenuItemFornecedor. Dado a permissão do usuário, que é verificada em tempo de execução, quero habilitar ou desabilitar os menus. Ou seja, tenho o nome dos objetos em uma lista, e de acordo com a execução quero usar o nome do objeto para mudar o seu estado. Pergunta, tem uma maneira de substituir o nome do objeto em tempo de execução para a invocação de um determinado método?
[code]<jMenuItemFornecedor>.setEnabled(false);[/code]
Grato.
Outra forma, que é usada por vários frameworks Swing, é setar a propriedade “name” de cada JComponent (um JMenuItem ou um JMenu é um JComponent) e procurar dentro do JFrame (ou de outro Container) que componentes são JMenu (ou JMenuItem) e tem o “name” igual ao que você está procurando.
Outra alternativa (um pouco mais chata), é você utilizar Reflection para buscar o field que você deseja a partir do nome informado.
Obrigado.
Vou setar o nome nas propriedades do objeto. Imaginava que ao nomear um componente sua propriedade name teria o mesmo valor. Mas agora verificando, notei que name do objeto está null. Gostei também da alternativa a partir de Action.
Valeu.
Marcos.