JMenu padrão + JMenu por usuário (vindos do Banco de Dados SQL) [RESOLVIDO]
6 respostas
S
schanceler
Fala pessoal, td bem?
Bom, sou novo no fórum e em Java e tenho uma dúvida que descreverei em detalhes a seguir (juro que procurei neste e em outros fóruns, porém não encontrei nada parecido).
Vamos lá!
Tenho uma classe de nome “Inicio” que monta os Menus e SubMenus no meu JDesktopPane (visíveis, só os SubMenus “Login” e “Informações”);
Essa classe chama uma outra de nome “Acoes”(em outro pacote), que verifica o SubMenu clicado (getActionCommand()) e instancia a tela a ser aberta. No caso deste exemplo, chamo a LoginUI.
Enfim…
O funcionário entra com usuário e senha, que verifica no banco de dados quais os Menus (programas) que ele terá acesso.
Daí minha dúvida:
Eu gostaria de, tendo um array com os IDs das telas recuperados do banco, fazer com q os novos Menus sejam adicionados aos que já existiam antes do login.
(tentei ser o mais detalhista possível)…
Agradeço o auxílio e as dicas serão muito bem vindas!
Abraços e obrigado!
Tendo um “menuItemFactory” fica fácil.
Você precisa iterar sobre o array (prefiro uma lista) e a cada novo “menu”, você o cria, coloca nele o bendito listener e insere no menubar…
S
schanceler
Ok drsmachado!
Obrigado pela dica!
Vou buscar informações sobre “menuItemFactory” e, chegando a uma conclusão, posto aqui!!!
Valeu!
S
schanceler
Pow pessoal! Juro que tentei encontrar algo parecido mas ainda estou tendo bastante dificuldade.
Alguém teria algum exemplo?
Obrigado!
V
victorp_farias
Rapaz eu tambem tinha essa dúvida como não encontrei nenhuma resposta fiz da seguinte maneira.
private void sistemaVendas(){
JmenuBar barra = new JMenuBar();
JMenu venda = new JMenu("Vendas");
barra.add(venda);
String menus = new String("orcamentos novo_orcamento lista_orcamento"); // Essa vai ser a string que você pega do banco de dados
if(menus.contains("orcamentos")){
JMenuItem orcamento = new JMenu("Orçamentos");
if(menus.contains("novo_orcamento")){
JMenuItem novoorcamento = new JMenuItem("Novo Orçamento");
orcamento.add(novoorcamento);
venda.add(orcamento);
}
if(menus.contains("listar_orcamento")){
JMenuItem listarorcamento = new JMenuItem("Listar Orçamentos");
orcamento.add(listarorcamento);
venda.add(orcamento);
}
}
}
Bem é uma maneira gambiarra de fazer isso, deve haver melhores e mais faceis mas eu não encontrei.
Se você encontra alguma depois me avisa, xD.
S
schanceler
Malaaaandro… que show!
Obrigado pelo exemplo!
Vou testar na minha aplicação!!! Claro que, se descobrir alguma outra forma, aviso por aqui também!!!
Abraços e obrigado pelo auxílio!
S
schanceler
Bom galera… depois de várias consultas e a dica do victorp_farias, desenvolvi a criação dos Menus da seguinte forma:
1 - Criei um arrayList para receber as informações que vem do Banco de Dados (que são as permissões de acesso de cada usuário).
2 - Defini os atributos como seguem: