Fórum Desabilitar jmenuitem dentro do jmenubar #402644
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
Curtir tópico
+ 0Posts
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 !
Gostei + 0
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.
Gostei + 0
15/06/2011
Dyego Carmo
Gostei + 0
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);
}
}
}
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)