Visualizzazione dei risultati da 1 a 10 su 10

Discussione: ascoltatore tasti

  1. #1
    Utente di HTML.it
    Registrato dal
    Jan 2007
    Messaggi
    44

    ascoltatore tasti

    Devo creare un ascoltatore dei tasti della tastiera(in particolare dei tasti freccia) Potete aiutarmi

  2. #2
    Utente di HTML.it
    Registrato dal
    Aug 2002
    Messaggi
    8,013
    <´¯)(¯`¤._)(¯`»ANDREA«´¯)(_.¤´¯)(¯`>
    "The answer to your question is: welcome to tomorrow"

  3. #3
    Utente di HTML.it
    Registrato dal
    Jan 2007
    Messaggi
    44
    dove posso trovare il codice di tutti i tasti?

  4. #4
    Utente di HTML.it
    Registrato dal
    Apr 2007
    Messaggi
    906
    EDIT: Usa la applet che c'e' all'indirizzo http://java.sun.com/docs/books/tutor...EventDemo.jnlp e guarda i codici dei tasti che ti interessano...

  5. #5
    Utente di HTML.it
    Registrato dal
    Aug 2002
    Messaggi
    8,013
    oppure le API. Raga, non si può programmare senza i manuali sottomano, in particolare se si tratta di un nuovo argomento.
    <´¯)(¯`¤._)(¯`»ANDREA«´¯)(_.¤´¯)(¯`>
    "The answer to your question is: welcome to tomorrow"

  6. #6
    Utente di HTML.it
    Registrato dal
    Apr 2007
    Messaggi
    906
    Puoi mica postare l'indirizzo delle api dove sono indicati i codici dei tasti.
    Tempo fa le cercai (in maniera superficiale, lo ammetto) e non trovai niente di utile.
    Nel caso mi riservissero in futuro.

    EDIT:Niente, ho trovato...
    http://java.sun.com/j2se/1.4.2/docs/.../KeyEvent.html

  7. #7
    Utente di HTML.it
    Registrato dal
    Jan 2007
    Messaggi
    44
    Scusate questo è il programma!! Non da errori Perchè allora non funge?
    Pigiando i tasti il cerchio non si sposta! Se clicco il mouse si?
    Potete provarlo e dirmi xKè nn va???
    Grazie


    import java.awt.*;
    import java.awt.Graphics;
    import java.awt.Color;
    import java.awt.event.*;

    public class gioco extends java.applet.Applet
    {
    int x=100;

    public void init ()
    {
    Frame f1= new Frame (" Raccoglitore");
    f1.setSize(900,900);
    f1.setLocation(1,1);

    ThreadPallino t1= new ThreadPallino();

    Thread runner1= new Thread(t1);

    f1.add(t1);

    f1.setVisible(true);
    runner1.start();
    }

    }


    class ThreadPallino extends Canvas implements Runnable
    {
    int a;
    int y=0;

    public ThreadPallino()
    {
    Ascolta A1=new Ascolta();
    addKeyListener(A1);

    Ascolta2 A2=new Ascolta2();
    addMouseListener(A2);
    }

    private class Ascolta2 extends MouseAdapter
    {
    public void mousePressed(MouseEvent E)
    {
    a=a+100;
    }
    }

    private class Ascolta extends KeyAdapter
    {
    public void KeyPressed(KeyEvent e)
    {
    switch(e.getKeyCode())
    {
    case KeyEvent.VK_A:
    a=a-10;
    break;
    case KeyEvent.VK_S:
    a=a+10;
    break;
    }
    }
    }

    public void run()
    {
    while (true )
    {
    y++;
    if(y==900)
    y=0;
    repaint();
    try
    {
    Thread.sleep(10);
    }
    catch ( InterruptedException e ){}
    }
    }
    public void paint (Graphics g)
    {
    g.fillOval(a,y,50,50);
    g.drawString(a+"",100,100);

    }
    }

  8. #8
    Utente di HTML.it
    Registrato dal
    Apr 2007
    Messaggi
    906
    Credo che il problema risieda nel fatto che KeyAdapter e KeyListener funzionano solo con componenti che possono ricevere il focus da tastiera (tipo textBox).

  9. #9
    Utente di HTML.it
    Registrato dal
    Jan 2007
    Messaggi
    44
    puoi propormi una soluzione?

  10. #10
    Utente di HTML.it
    Registrato dal
    Apr 2007
    Messaggi
    906
    Ok, il problema era molto piu' banale del previsto. Canvas ha il focus da tastiera.
    Il problema sta nel fatto che hai scritto keyPressed con la k maiuscola invece che minuscola.

    EDIT: Dimenticavo, io ho provato con MouseListener e KeyListener perchè MouseAdapter e KeyAdapter non mi andavano. Ti posto il codice
    codice:
    private class Ascolta2 implements MouseListener {
       public void mousePressed(MouseEvent E) {
          a=a+100;
       }
    
       public void mouseClicked(MouseEvent e) {}
       public void mouseReleased(MouseEvent e) {}
       public void mouseEntered(MouseEvent e) {}
       public void mouseExited(MouseEvent e) {}
    }
        
    private class Ascolta implements KeyListener  {
       public void keyPressed(KeyEvent e) {
             switch(e.getKeyCode()) {
                case KeyEvent.VK_A:
                        a=a-10;
                        break;
                case KeyEvent.VK_S:
                        a=a+10;
                        break;
             }
       }
    
       public void keyTyped(KeyEvent e) {}
       public void keyReleased(KeyEvent e) {}
    }

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.