KeyPressed (Urgente)

7 respostas
L

Tenho um trabalho para fazer… um sistema de leitura para deficiente visual… e gostaria de saber como faço para ao aperta o ENTER execute o Play…e ESC para Stop…e assim sucessivamente… como uso essa função…? como coloco as condições?

7 Respostas

F

faz alguma coisa assim

componente.addKeyListener(new KeyAdapter() {
    public void keyReleased(KeyEvent e) {
        int keyCode = e.getKeyCode();
        if (keyCode == KeyEvent.VK_ENTER)
            System.out.println("AQUI CHAMA O TEU PLAY");
        else if (keyCode == KeyEvent.VK_ESCAPE)
            System.out.println("AQUI CHAMA O TEU STOP");
    }                        
});
L

qual o problema desse codigo?

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

public class opcao1 extends JFrame implements KeyListener
{
	private JLabel l0;
	private JTextField c0;
	private JButton b1, b2;
	
	
	public opcao1()
	{
		super("Menu Inicial");
		
		Container container = getContentPane();
		container.setLayout (new FlowLayout());
						
		l0 = new JLabel("Opção");
		
		c0 = new JTextField(5);
		
		b1 = new JButton("EXECUTAR MENU");
		b2 = new JButton("SAIR");
		
		//b1.addKeyListener(this);
		//b2.addKeyListener(this);
		
		container.add(l0);
		container.add(c0);
		
		container.add(b1);
		container.add(b2);
		
		setSize(150,150);
		setVisible(true);
	}
		
		
	
	public void keyPressed (KeyEvent event)
	{
	
			 Key.addKeyListener(new KeyAdapter() 
			  { 
    			public void keyReleased(KeyEvent e) 
    			{ 
        			int keyCode = e.getKeyCode(); 
       				
       				 if (keyCode == KeyEvent.VK_ENTER) 
            			System.out.println("AQUI CHAMA O TEU PLAY"); //>teste
        
        			else if (keyCode == KeyEvent.VK_ESCAPE) 
            
            			System.exit(0); 
    			}                        
			  }); 
	}
	
		
	public static void main(String args[]) 
	{
		opcao1 application = new opcao1();
		application.setDefaultCloseOperation( JFrame.EXIT_ON_CLOSE);
	
		
		
		/*WindowListener x = new WindowAdapter()
        {
			public void windowClosing(WindowEvent e)
			{
				System.exit(0);
			}
	    };
		application.addWindowListener(x);*/
		
	}
		
		
}
F

olha… nao cheguei a testar… mas olhando por cima agora nao seria

//b1.addKeyListener(this);
      //b2.addKeyListener(this);

por q estao comentadas?

L

não… ele dá esse erro…

C:\Documents and Settings\Luana Kelly\Desktop\Trabalho\opcao1.java:7: opcao1 should be declared abstract; it does not define keyTyped(java.awt.event.KeyEvent) in opcao1
public class opcao1 extends JFrame implements KeyListener

E

cara LuanaKelly,

não prestei mta atençao no tópico, mas notei q a msg de erro eh mto esclarecedora:

C:\Documents and Settings\Luana Kelly\Desktop\Trabalho\opcao1.java:7: opcao1 should be declared abstract; it does not define keyTyped(java.awt.event.KeyEvent) in opcao1
public class opcao1 extends JFrame implements KeyListener

ela quer dizer q quando vc implementa KeyListener, vc tem q reimplementar o método keyTyped, ou declarar sua classe como abstrata.

tente acrescentar issu ao seu código

public void keyTyped(KeyEvent event){}

Espero q seja issu

Ederson

L

Caro Ederson

com certeza, vc tem toda razão, está na cara o que o erro quer dizer…mas não é só isso…continua dando erro…mesmo implementando os métodos KeyTyped, KeyPressed e KeyReleased…

obrigado :wink:

J
oi luana, rodei o seguinte codigo:
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;

public class opcao1 extends JFrame implements KeyListener
{
   private JLabel l0;
   private JTextField c0;
   private JButton b1, b2;
   
   
   public opcao1()
   {
      super("Menu Inicial");
      
      Container container = getContentPane();
      container.setLayout (new FlowLayout());
                  
      l0 = new JLabel("Opção");
      c0 = new JTextField(5);
      b1 = new JButton("EXECUTAR MENU");
      b2 = new JButton("SAIR");
      
      c0.addKeyListener(this);
      b1.addKeyListener(this);
      b2.addKeyListener(this);
      
      container.add(l0);
      container.add(c0);
      container.add(b1);
      container.add(b2);
      
      setSize(150,150);
      setVisible(true);
   }
   
   public void keyPressed (KeyEvent event){}
   
   public void keyTyped (KeyEvent event){}
   
   public void keyReleased(KeyEvent e) {
       int keyCode = e.getKeyCode();
         
          if (keyCode == KeyEvent.VK_ENTER)
           System.out.println("AQUI CHAMA O TEU PLAY");

          else if (keyCode == KeyEvent.VK_ESCAPE)
          	System.out.println("AQUI CHAMA O TEU STOP");
   }   
      
   public static void main(String args[])
   {
      opcao1 application = new opcao1();
      application.setDefaultCloseOperation( JFrame.EXIT_ON_CLOSE);
   }  
}

e ele nao apresentou problema nenhum.
coloquei os 3 addKeyListener porque entendi que voce queria que apertando ENTER ou ESC em qualquer momento da tela (com o foco em qualquer componente) o programa fizesse o comportamento esperado.

espero ter ajudado
[]'s

Criado 31 de março de 2005
Ultima resposta 3 de abr. de 2005
Respostas 7
Participantes 4