Desabilitar jmenuitem dentro do jmenubar
Colegas,
tenho o seguinte
jMenu + jMenuBar + jMenuItem
Por exemplo:
Cadastros
Funcionario
Clientes
Compradores
Fornecedores
Tenho um tabela que Registra o nome que esta no JMenuItem (Funcionario, cliente, compradores e fornecedores) os mesmos tem a opção F ou V relativo a cada usuario. Se o na tabela o usuario João estiver com o
Funcionario = F
Cliente = F
Compradores = V
Fornecedores = F,
quando ele logar no sistema somente Compradores estaria habilitado.
Funcionario (Desabilitado. Propriedade Enabled = F)
Clientes (Desabilitado. Propriedade Enabled = F)
Compradores (Habilitado. Propriedade Enabled = V)
Fornecedores (Desabilitado. Propriedade Enabled = F)
A Tabela é como se segue:
T_Acesso
IdAcesso integer (autoincremento)
CaptionMenu varchar(25)
Permissao char(1) Aqui só permite V ou F.
Se não entenderem esse controle de acesso por favor me retornem.
Obrigado!
Nilo Souza
Curtidas 0
Respostas
Dyego Carmo
08/06/2011
Eu não entendi o que voce realmente quer ... não consegue puxar isto do banco e varrer seu menu ?
Sugiro gravar o nome do componente junto no banco , assim nao precisará altgerar a ENGINE a cada menu novo :)
Valeu !
Sugiro gravar o nome do componente junto no banco , assim nao precisará altgerar a ENGINE a cada menu novo :)
Valeu !
GOSTEI 0
Nilo Souza
08/06/2011
vou tentar explicar melhor
Imagine o Menu Cadastro (Jmenu) que esta no jmpPrincipal(JMenuBar)
O menu cadastro tem o submenus (JMenuItem) Fornecedor, Produto, cliente
No bando de dados eu tenho uma tabela chamada Menu onde cadastrei os subMenus Fornecedor, Produto, cliente, com os seus respectivos menus, no caso em questão cadastro.
Não aplicação cliente, faço um sql que me retorna a condição dos submenus se esta S ou N
Caso esteja S, ele vai no menubar, procura o menuBar (Cadastro) varre os submenus (Fornecedor, Produto, cliente) e coloca o MeuItem conforme tabela ou seja:
fornecedor.enable = True
cliente.enable = false
Produto.enable = True
Isso de acordo que eu der a permissão ao usuario. Ai para o usuário irá aperecer habilitado ou desabilitado.
Deu para ter uma idéia melhor?
Desde já obrigado
Tebela Menu
campos
Menu, submenu, acesso
Menu
Cadastro
Submenu
Fornecedor = S
Cliente = N
Produto = S
PS. E justamente isso que vc pensou:
"não consegue puxar isto do banco e varrer seu menu ?"
No access eu fiz tenho mais pratica e consegui criar um While varrendo o menu, mas no java sou iniciante, estou assistindo suas aulas sobre desvendando o swing, mas não consegui por em pratica.
No access eu fiz tenho mais pratica e consegui criar um While varrendo o menu, mas no java sou iniciante, estou assistindo suas aulas sobre desvendando o swing, mas não consegui por em pratica.
GOSTEI 0
Dyego Carmo
08/06/2011
Cole aqui o codigo que "voce tentou" , assim posso ver aonde vc falhou e corrigir :)
GOSTEI 0
Nilo Souza
08/06/2011
Preciso passar o valor do array para a função: LiberaTelasfilhas
Mas me retorna a mensagem de erro que o teste passado para a função não é um tipo compativel.
Sei que a variável é do tipo String e a função espera um java.swing.jMenu, mas eu não sei converter.
Minha ideia inicial foi varrer usando a função libera, mas tive a dificuldade acima.
Mas me retorna a mensagem de erro que o teste passado para a função não é um tipo compativel.
Sei que a variável é do tipo String e a função espera um java.swing.jMenu, mas eu não sei converter.
Minha ideia inicial foi varrer usando a função libera, mas tive a dificuldade acima.
private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) { ] String[] jMenu = {"jMenu1","jMenu2"}; String teste; for (int i = 0; i< jMenu.length; i++){ teste = jMenu[i]; System.out.println(teste); LiberaTelasfilhas(teste); }
public void LiberaTelasfilhas(javax.swing.JMenu menuPesq) { javax.swing.JMenuItem menuItem2 = null; javax.swing.JMenu menu2 = null; java.awt.Component[] componentsFilhos; componentsFilhos = menuPesq.getMenuComponents(); for (int i = 0; i < componentsFilhos.length; i++) { menuItem2 = menuPesq.getItem(i); System.out.println(" -> " + menuItem2.getText()); if (componentsFilhos[i] instanceof javax.swing.JMenu) { menu2 = ((javax.swing.JMenu) componentsFilhos[i]); //Aqui eu tento pegar o nome do JMenu, mas ele retorno nulo, ja o texto vem normal. System.out.println(" -> " + menuItem2.getName() +"-"+ menuItem2.getText()); LiberaTelasfilhas(menu2); } } }
GOSTEI 0