Desabilitar jmenuitem dentro do jmenubar
08/06/2011
0
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
Posts
09/06/2011
Dyego Carmo
Sugiro gravar o nome do componente junto no banco , assim nao precisará altgerar a ENGINE a cada menu novo :)
Valeu !
09/06/2011
Nilo Souza
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.
15/06/2011
Dyego Carmo
15/06/2011
Nilo Souza
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); } } }
Clique aqui para fazer login e interagir na Comunidade :)