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

Nilo Souza

Responder

Posts

09/06/2011

Dyego Carmo

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 !
Responder

09/06/2011

Nilo Souza

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.
Responder

15/06/2011

Dyego Carmo

Cole aqui o codigo que "voce tentou" , assim posso ver aonde vc falhou e corrigir :)

Responder

15/06/2011

Nilo Souza

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.  
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);     
            }     
        }     
    }    

Responder

Assista grátis a nossa aula inaugural

Assitir aula

Saiba por que programar é uma questão de
sobrevivência e como aprender sem riscos

Assistir agora

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar