Oi,
seria isso mesmo…
o método isArmed, verifica se algum MenuItem esta “armado” ou não…
e o setArmed, define se pretende continuar armado ou não…
Tipo, poderia colocar só a parte do código que você fez para criar seu JMenuItem… ?
Tchauzin!
Oi,
seria isso mesmo…
o método isArmed, verifica se algum MenuItem esta “armado” ou não…
e o setArmed, define se pretende continuar armado ou não…
Tipo, poderia colocar só a parte do código que você fez para criar seu JMenuItem… ?
Tchauzin!
Pessoal,
Tenho o seguinte problema: Possuo um JMenuBar com vários JMenus que por sua vez possuem vários JMenuItens.
Quando clico em um JMenu e abro a “cortina” do menu e clico em algum local fora da “cortina”, a “cortina” do menu NÃO está sendo recolhida. Ela fica aberta, mesmo clicando em qualquer local fora do Menu.
Para solucionar, tentei utilizar o método isArmed () de JMenuItem. Pelo que entendi, esse método verifica se um determinado JMenuItem está aberto, e se estiver, eu invocaria um setArmed (false) para fechar a “cortina” do menu. Mas não funcionou.
Voces sabem como solucionar isso? Pra que realmente serve o método isArmed ()?
Obrigado, Guilherme
Obrigado pela resposta.
Criei uma classe que implementa MouseListener e no método mouseClicked ele faz a verificação:
public void mouseClicked(MouseEvent mouseevent) {
int contador = ViewFacade.getViewFacade().getMenuBar().getMenuCount();
for (int i = 0; i < contador; i++){
JMenu myMenu = (JMenu)ViewFacade.getViewFacade().getMenuBar().getMenu(i);
for (Component itensMenu : myMenu.getMenuComponents()){
if (itensMenu instanceof JMenu){
if (((JMenu)itensMenu).isArmed()){
((JMenu)itensMenu).setArmed(false);
}
}else if (itensMenu instanceof JMenuItem){
if (((JMenuItem)itensMenu).isArmed()){
((JMenuItem)itensMenu).setArmed(false);
}
}
}
}
Adicionei esse listenter no JPanel que fica abaixo de meu JMenuBar.
Obrigado, Guilherme