Procurei em vários foruns e não encontrei algo que pudesse me ajudar, meu problema é o seguinte:
Quero controlar acesso ao menu de um formulário de acordo com uma tabela, onde nessa tabela terei o identificador do usuário e o nome do menu
Usuario (int) -> JMenuItem (String)
X -> JM1
Os menus já estão criados e desabilitados, quando o usuário logar verifico quais menus ele tem acesso e “seto” os mesmos para true, o problema é q tenho apenas o nome do menu, ou seja, uma String e não sei como habilitar o menu com base nisso pq não encontrei nenhum método q retornasse o jmenuitem com base no nome algo assim:
getJMenuItem(“JM1”).setEnable(true)
alguém sabe como fazer isso? Estou falando de uma aplicação Swing
Caro, utilizo a IDE NetBeans e meus itens de menus sao todos nomeados, consigo fazer acesso direto a menu item conforme abaixo.
JMenuItem.setEnabled(false);
F
fxavierds
Sim mas imagina um método que recebe o nome do JMenuItem e o seta pra true algo assim:
publicvoidsetAcesso(Stringnome){
nome.setEnable(true); // só que esse nome é uma string que é o nome do JMenuItem, então como fazer isso?
}
Eric_Yuzo
Com o nome eu não sei como fazer. Mas dá pegar o componente de um JMenu ou JMenuBar pelo índice.
Ficaria mais ou menos:
int indice = 0;
jMenu.getMenuComponent(indice).setEnabled(true);
Se for para pegar um JMenu no JMenuBar ficaria:
Não é o que você está querendo, mas pode servir como alternativa.
F
fxavierds
Eric valeu pela ajuda, aproveitando tem como eu pegar todos os itens de uma JMenuBar?
W
willCesar
fxavierds,
Desculpe, não havia me atentado ao detalhe de receber o nome do menuItem, porém construi um algoritmo com dois laços for que talvez possam ajudar, este algoritmo irá imprimir a String do nome de cada menu e item de menu, ai com a String voce pode identificar de qual menu se trata e bloquear este que estará na posicao x de m, segue abaixo.
porém nao se esquece que voce deve setar a propriedade name dos menus
Eric_Yuzo
Eu conheço dois modos pra fazer isto:
Retorna um array com todos os componentes no JMenuBar.
Retorna um array com os componentes que implementam a interface MenuElement, como JMenu, JMenuItem…
F
fxavierds
Cara vlw pela ajuda, isso esclarece muita coisa, mas não consigo acreditar que não dá pra setar uma propriedade de um atributo de um objeto passando como parametro o seu nome…