Re:Problema com JMenuItem, método isArmed()

2 respostas
lina

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!

2 Respostas

G

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

G

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

Criado 20 de março de 2007
Ultima resposta 20 de mar. de 2007
Respostas 2
Participantes 2