Como registrar um KeyStroke quando o JFrame que contém o JComponent tem o foco

3 respostas
M

Fala pessoal,

estou com um problema. Tenho uma GUI que tem um JFrame que contém alguns JComponents nele (JPanels, como se fossem subjanelas). Num desses JPanels registrei um KeyStroke usando o WHEN_IN_FOCUSED_WINDOW. Assim, aquele KeyStroke está registrado apenas se esse JPanel tiver o foco. Como eu faço se eu quiser registrar um KeyStroke nesse JPanel mas que funciona quando o JFrame que o contém tem o foco ?

[]'s,
R.M.

3 Respostas

davidbuzatto

É só verificar se o JFrame tem o fóco:

seuJFrame.isFocused();

Falow!

M

??

Acho que você não entendeu a minha pergunta direito, amigo…eu tenho um JFrame c/ JPanels, que não se conhecem e não conhecem o JFrame. Gostaria de saber se há alguma forma de registrar num desses JPanels um keystroke que funcionará não só quando este JPanel tem o foco, mas sim quando o JFrame que o contém.

Valeu assim mesmo ! Aguardo mais ajuda. :smiley:

P

Velho, n entendi muito o q vc fez ae n.COmo vc ta criando os paineis? Cada painel vc cria por 1 método? Cada painel eh criado em classes diferentes? Posta ae o código, para entedermos melhor!

Caso vc esteje trabalhando com o método, vc n pode por o KeyStroke dentro do metodo, pq ae ele so vai ser visivel dentro do proprio método, sugiro vc criar 1 novo painel recebendo o retorno do metodo, e nesse painel vc adiciona o KeyStroke, ae vc pode trabalhar com o Jframe.

Caso sejam classes difrentes, ou inicializa 1 objeto da classe, ou use o padrão Observer.

N sei se ajudei, mais posta ae o código!

Criado 19 de junho de 2006
Ultima resposta 12 de set. de 2006
Respostas 3
Participantes 3