Tenho uma aplicação que quando o usuário apertar um botão, chama um método que dependendo da condição do if ele tem que bloquear alguns dos JMenus.
Já testei a chamada do método e a aplicação está chamando normalmente, porém não estou conseguindo bloquear os JMenu.
O código do método é o seguinte:
//Verifica o departamento para liberar o menu
private void verificarDepartamento(){
if (comboLogDepartamento.getSelectedItem().equals("cobrança")) {
contabilidade.setEnabled(false); // contabilidade é um JMenu
gerencia.setEnabled(false);
departamentoPessoal.setEnabled(false);
recepcao.setEnabled(false);
cadastramento.setEnabled(false);
}
}
Caso tenha algum erro ou falte algo,
Por favor me ajudem.
Valeu galera.
if (comboLogDepartamento.getSelectedItem().equals("cobrança")) {
contabilidade.setEnabled(false); // contabilidade é um JMenu
gerencia.setEnabled(false);
departamentoPessoal.setEnabled(false);
recepcao.setEnabled(false);
cadastramento.setEnabled(false);
}
ou
Com certeza vai funcionar!
wamarra
Tentei a questão do if, mas, não deu certo:
Que no caso a opção do meu index no combo para comparação é 6.
como eu faço para adicionar uma action, sendo que eu chamo o método verificarDepartamento() apartir de um evento de um botão.
como devo fazer?
Valeu
heatcold
Ao invez de chamar esse metodo apartir de um botao, adicione um actionlistener ao combobox.
Exemplo inline:
jComboBox1.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
int n = jComboBox1.getSelectedIndex();
if (n == 6) {
contabilidade.setEnabled(false);
gerencia.setEnabled(false);
departamentoPessoal.setEnabled(false);
recepcao.setEnabled(false);
cadastramento.setEnabled(false);
}
}
});
Exemplo criado com o Netbeans:
private void jComboBox1ActionPerformed(java.awt.event.ActionEvent evt) {
int n = jComboBox1.getSelectedIndex();
if (n == 6) {
contabilidade.setEnabled(false);
gerencia.setEnabled(false);
departamentoPessoal.setEnabled(false);
recepcao.setEnabled(false);
cadastramento.setEnabled(false);
}
}
wamarra
Boa noite
heatcold
Tentei o que me falou porém, não tive êxito.
Quando eu coloco a chamada do método verificarDepartamento() nas propriedades avançadas do Enabled do JFrame principal ele execulta o método independente da escolha do JComboBox.
Onde será que está errado?
Caso tenha outra ideia eu agradeço
valeu mesmo a força
Wesley Marra
heatcold
Crie um novo actionlistener para o combobox, como no primeiro exemplo.
jComboBox1.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
int n = jComboBox1.getSelectedIndex();
if (n == 6) {
contabilidade.setEnabled(false);
gerencia.setEnabled(false);
departamentoPessoal.setEnabled(false);
recepcao.setEnabled(false);
cadastramento.setEnabled(false);
}
}
});
É exatamente este código.
wamarra
seria isso:
comboLogDepartamento.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
int n = comboLogDepartamento.getSelectedIndex();
if (n == 6) {
contabilidade.setEnabled(false);
juridico.setEnabled(false);
departamentoPessoal.setEnabled(false);
recepcao.setEnabled(false);
cadastramento.setEnabled(false);
}
}
});
Pois ele dá erro na linha:
ele não reconhe o comboLogDepartamento, que é o meu JComboBox
caso tenha alguma coisa errada me corrija por favor
novamente valeu
wamarra
Cara até que enfim consegui!!!
Tive que chamar o método verificarDepartamento() pelo evento do botão mesmo alterando algumas coisas, até mesmo porque criei outras condições. Por isso alterei de if para switch.
Tive que criar uma instância da classe Principal para tornar cada menu visível apenas para aquela opção escolhida no JComboBox e torná-la visível atravez do método setVisible()
Bom não sei se é o certo mas, funcionou… hehehe…
O código do método ficou assim:
//Verifica o departamento para liberar o menu
private void verificarDepartamento(){
TelaPrincipal tp = new TelaPrincipal();
tp.setVisible(true);
switch (comboLogDepartamento.getSelectedIndex()){
case 1: tp.juridico.setEnabled(true);
tp.cobranca.setEnabled(false);
tp.departamentoPessoal.setEnabled(false);
tp.recepcao.setEnabled(false);
tp.cadastramento.setEnabled(false);
tp.contabilidade.setEnabled(false);
break;
case 2: tp.juridico.setEnabled(false);
tp.cobranca.setEnabled(true);
tp.departamentoPessoal.setEnabled(false);
tp.recepcao.setEnabled(false);
tp.cadastramento.setEnabled(false);
tp.contabilidade.setEnabled(false);
break;
case 3: tp.juridico.setEnabled(false);
tp.cobranca.setEnabled(false);
tp.departamentoPessoal.setEnabled(true);
tp.recepcao.setEnabled(false);
tp.cadastramento.setEnabled(false);
tp.contabilidade.setEnabled(false);
break;
case 4: tp.juridico.setEnabled(false);
tp.cobranca.setEnabled(false);
tp.departamentoPessoal.setEnabled(false);
tp.recepcao.setEnabled(false);
tp.cadastramento.setEnabled(false);
tp.contabilidade.setEnabled(true);
break;
case 5: tp.juridico.setEnabled(false);
tp.cobranca.setEnabled(false);
tp.departamentoPessoal.setEnabled(false);
tp.recepcao.setEnabled(true);
tp.cadastramento.setEnabled(false);
tp.contabilidade.setEnabled(false);
break;
case 6: tp.juridico.setEnabled(true);
tp.cobranca.setEnabled(true);
tp.departamentoPessoal.setEnabled(true);
tp.recepcao.setEnabled(true);
tp.cadastramento.setEnabled(true);
tp.contabilidade.setEnabled(true);
break;
}
}
Valeu Mesmo a força heatcold
Te devo essa.
Forte Abraço,