01/05/12 16:57
sarbaturino
Salve..
Ho riscontrato dei problemi nel far funzionare la tastiera..
Praticamente, quando carico le immagini nel mio sorgente, il KeyListener non mi acquisisce i tasti che i premo..
Mentre quando le immagini non sono caricate, il KeyListener acquisisce tranquillamente i tasti premuti in input..
Mi potete aiutare a risolvere questo problema??
Il mio sorgente è questo:
Vi ringrazio in anticipo per il vostro aiuto!!
Grazie!!
Ho riscontrato dei problemi nel far funzionare la tastiera..
Praticamente, quando carico le immagini nel mio sorgente, il KeyListener non mi acquisisce i tasti che i premo..
Mentre quando le immagini non sono caricate, il KeyListener acquisisce tranquillamente i tasti premuti in input..
Mi potete aiutare a risolvere questo problema??
Il mio sorgente è questo:
import java.awt.Color; import java.awt.Graphics; import java.awt.Image; import java.awt.MediaTracker; import java.awt.Toolkit; import java.awt.event.KeyEvent; import java.awt.event.KeyListener; import java.awt.event.MouseEvent; import java.awt.event.MouseListener; import javax.swing.JPanel; public class MyPanel extends JPanel implements KeyListener,MouseListener { private Image sfondoPannello; private Image tavoletta; private Image stella; public MyPanel (){ super(); setBackground(Color.BLACK); this.addKeyListener(this); //Aggiunta della tastiera; this.addMouseListener(this); //Aggiunta del mouse; this.setFocusable(true); sfondoPannello = Toolkit.getDefaultToolkit().getImage("Image/sfondo.png"); tavoletta = Toolkit.getDefaultToolkit().getImage("Image/astronave.png"); stella = Toolkit.getDefaultToolkit().getImage("Image/star.png"); //caricaImmagine ( sfondoPannello ); //caricaImmagine ( tavoletta ); //caricaImmagine ( stella ); } private void caricaImmagine ( Image img){ try{ MediaTracker track = new MediaTracker(this); track.addImage(img, 0); //load dell'immagine track.waitForID(0); //attesa del caricamento; } catch(InterruptedException e){ e.printStackTrace(); //Stampa l'errore; System.out.println("Immagine non trovata"); } } /* * descrive come deve essere disegnato il pannello; */ public void paintComponent ( Graphics g){ super.paintComponent(g); //g.drawImage(sfondoPannello,0, 0, null); //g.drawImage(tavoletta,10,10, null); //g.drawImage(stella,0, 0, null); } @Override public void keyPressed(KeyEvent e) { switch (e.getKeyCode()) { case KeyEvent.VK_UP : System.out.println("UP"); ;break; case KeyEvent.VK_DOWN :System.out.println("DX");;break; case KeyEvent.VK_LEFT: System.out.println("SX");;break; case KeyEvent.VK_RIGHT:System.out.println("D");;break; default:break; } //this.repaint(); } @Override public void keyReleased(KeyEvent e) { //this.repaint(); } @Override public void keyTyped(KeyEvent e) { //this.repaint(); } @Override public void mouseClicked(MouseEvent e) { System.out.print("MyPanel.mouseClicked() "); System.out.println(e.getX()+", "+e.getY()); this.repaint(); } @Override public void mouseEntered(MouseEvent e) { System.out.println("MyPanel.mouseEntered()"); } @Override public void mouseExited(MouseEvent e) { System.out.println("MyPanel.mouseExited()"); } @Override public void mousePressed(MouseEvent e) { System.out.print("MyPanel.mousePressed()"); System.out.println(e.getX()+", "+e.getY()); } @Override public void mouseReleased(MouseEvent e) { System.out.println("MyPanel.mouseReleased()"); } }
Vi ringrazio in anticipo per il vostro aiuto!!
Grazie!!
aaa