JInternalFrame KeyListener (URGENTE)

2 respostas
B

e ai galera, blz…

eu tenho um frame principal que chama 3 outros internalframes…
Eu precso de um keyListener em cada um desses INternalFrame, pq quando uma tecla for pressionada ela abrirá um arquivo de som… Mas o Key listener nao esta pegando os eventos do teclado no internalFrame (ja testei em um Frame e funcionou). ALguem poderia me dar uma ajuda de como eu posso implmentar o keyListener no InternalFrame?

2 Respostas

dsfextreme
badaro:
e ai galera, blz...

eu tenho um frame principal que chama 3 outros internalframes...
Eu precso de um keyListener em cada um desses INternalFrame, pq quando uma tecla for pressionada ela abrirá um arquivo de som... Mas o Key listener nao esta pegando os eventos do teclado no internalFrame (ja testei em um Frame e funcionou). ALguem poderia me dar uma ajuda de como eu posso implmentar o keyListener no InternalFrame?

import javax.swing.*;
import java.awt.event.*;
import java.awt.*;
import java.util.*;

public class SampleDesktop extends JFrame
{
	protected JDesktopPane mDesktopPane;
	
	public SampleDesktop(String aTitle)
	{
		super(aTitle);
		mDesktopPane = new JDesktopPane();
		setContentPane(mDesktopPane);
		createInternalFrame();
	}
	
	protected void createInternalFrame()
	{
		JInternalFrame lIFrame = new JInternalFrame("JInternalFrame",true, true, true, true);
		lIFrame.addKeyListener(new KeyAdapter()
		{
			public void keyPressed(KeyEvent ev)
			{
				JOptionPane.showInternalMessageDialog(mDesktopPane, "keyPressed!", "information", JOptionPane.INFORMATION_MESSAGE);
			}
			
			public void keyReleased(KeyEvent ev)
			{
				JOptionPane.showInternalMessageDialog(mDesktopPane, "keyReleased!", "information", JOptionPane.INFORMATION_MESSAGE);
			}
			
			public void keyTyped(KeyEvent ev)
			{
				JOptionPane.showInternalMessageDialog(mDesktopPane, "keyTyped!", "information", JOptionPane.INFORMATION_MESSAGE);
			}
		});
		
		mDesktopPane.add(lIFrame, JDesktopPane.DEFAULT_LAYER);
		lIFrame.setSize(200, 200);
		lIFrame.show();
		
	}
	
	public static void main(String[] args)
	{
		SampleDesktop myDesktop = new SampleDesktop("JInternalFrameTest");
		myDesktop.setSize(300,300);
		myDesktop.setVisible(true);
	}
}

Verifica se o foco está no internal frame , talvez possa ser isso.

Um abraço !"

B

po vei aqui em casa esse exemplo seu continua sem atender aos eventos, ele nao ta fazendo nada

Criado 2 de junho de 2006
Ultima resposta 2 de jun. de 2006
Respostas 2
Participantes 2