Menu / Item e sub-itens

4 respostas
guilherme_ha

pessoal
preciso de uma ajuda
estou querendo "rastrear" os itens e sub itens de um menu, e pegar o texto.
exemplo:

Arquivo
item 1
-----sub-item 1
-----sub-item 2
-----sub-item 3
-----item 2
--------sub-item 4
--------sub-item 5
--------sub-item 6
-----sub-item 7
-----sub-item 8

ao clicar no item 5 por exemplo (sequencia em negrito)
quero imprimir o seguinte texto
"Arquivo > item 1 > item 2 > sub-item 5"

alguem tem alguma ideia?

valew

4 Respostas

dreampeppers99

Acho que uma lista encadeada, no seu caso pode ser que uma lista nao precisa nem ser dupla. ou usar o composite design pattern.

guilherme_ha

Obrigado.
mas nao entendi direito
usando JMenu e JMenuItem
como posso utilizar o LinkedList do proprio objeto ?

At.
Guilherme

dreampeppers99

guilherme_ha:
Obrigado.
mas nao entendi direito
usando JMenu e JMenuItem
como posso utilizar o LinkedList do proprio objeto ?

At.
Guilherme

Como você não havia citado antes os objetos que estava trabalhando pensei que queria uma solução genérica. Não me recordo muito bem mas aposto que o próprio JMenu (parent) e os JMenuItem (filho) já te dão essa característica de saber quem é seu ancestral.

eliangela

Tem como vc saber os componentes dentro de um menu. Assim:

private List<String> listaNomes = new ArrayList<String>();
	private void rastrearBarraMenu() {
		for (int x = 0; x < menuBar.getMenuCount(); x++) {
			JMenu m = menuBar.getMenu(x);
			listaNomes.add(m.getText());

			rastrarMenus(m);
		}
	}

	private void rastrarMenus(JMenuItem m) {
		if (m instanceof JMenu) {
			JMenu menu = (JMenu) m;

			for (int x = 0; x < menu.getItemCount(); x++) {
				rastrarMenus(menu.getItem(x));
			}
		} else {
			listaNomes.add(m.getText());
		}
	}
Criado 22 de julho de 2011
Ultima resposta 22 de jul. de 2011
Respostas 4
Participantes 3