Visualizzazione dei risultati da 1 a 3 su 3
  1. #1

    Piccolo problema con gestione eventi della tastiera...

    Perchè non riesco a far muovere la pallina premendo i tasti direzionali? Spero che qualcuno mi aiuti

    codice:
    import java.awt.Point;
    import java.awt.Graphics;
    import java.awt.Color;
    import java.awt.event.KeyAdapter;
    import java.awt.event.KeyEvent;
    import javax.swing.JPanel;
    import javax.swing.JFrame;
    
    public class PacmanDF extends JPanel
    {
    	private Point pacman;
    	
    	public PacmanDF()
    	{
    		pacman = new Point (10, 20);
    		
    		addKeyListener (new PacmanDFHandler());
    	}
    	
    	private class PacmanDFHandler extends KeyAdapter
    	{
    		public void keyPressed (KeyEvent event)
    		{
    			switch (event.getKeyCode())
    			{
    				case KeyEvent.VK_RIGHT:
    					pacman.x++;
    					break;
    					
    				case KeyEvent.VK_LEFT:
    					pacman.x--;
    					break;
    					
    				case KeyEvent.VK_UP:
    					pacman.y--;
    					break;
    					
    				case KeyEvent.VK_DOWN:
    					pacman.y++;
    			}
    			repaint();
    		}
    	}
    	
    	public void paintComponent (Graphics g)
    	{
    		super.paintComponent(g);
    		
    		g.setColor (Color.YELLOW);
    		g.fillOval (pacman.x, pacman.y, 20, 20);
    	}
    	
    	public static void main (String[] args)
    	{
    		PacmanDF panel = new PacmanDF();
    		panel.setBackground (Color.BLACK);
    		
    		JFrame frame = new JFrame ("Pacman DF");
    		frame.setSize (640, 480);
    		frame.setLocationRelativeTo (null);
    		frame.setDefaultCloseOperation (JFrame.EXIT_ON_CLOSE);
    		
    		frame.add(panel);
    		
    		frame.setVisible (true);
    	}
    }

  2. #2
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284
    L'avevo già spiegato proprio in questa tua discussione.
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  3. #3
    Originariamente inviato da andbin
    L'avevo già spiegato proprio in questa tua discussione.
    Grazie mille, lo avevo proprio dimenticato! ^^ Se ricordo bene, il JFrame è focusabile già di suo, mentre il JPanel no e quindi bisogna impostarlo, giusto?

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 © 2026 vBulletin Solutions, Inc. All rights reserved.