Hej, chcę napisać prostą aplikację, żeby poćwiczyć zdarzenia klawiatury i rysowanie po JPanelu. Aplikacja ma wyświetlić kółko i przesuwać je za pomocą klawiszy WSAD.
/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
package cos;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JFrame;
import javax.swing.JMenu;
import javax.swing.JMenuBar;
import javax.swing.JMenuItem;
/**
*
* @author Mati
*/
public class Cos extends JFrame {
/**
* @param args the command line arguments
*/
public Cos(){
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
ImagePanel ob = new ImagePanel();
add(ob);
setSize(300, 300);
setVisible(true);
}
public static void main(String[] args) {
Cos ob= new Cos();
}
}
/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
package cos;
import java.awt.Graphics;
import java.awt.event.KeyEvent;
import java.awt.event.KeyListener;
import java.awt.image.BufferedImage;
import javax.swing.JPanel;
/**
*
* @author Mati
*/
class ImagePanel extends JPanel implements KeyListener{
BufferedImage image;
int x=0,y=0,width=10,height=10;
public ImagePanel(){
addKeyListener(this);
}
public void paintComponent(Graphics g){
g.fillOval(x, y, width, height);
}
@Override
public void keyTyped(KeyEvent e) {
throw new UnsupportedOperationException("Not supported yet.");
}
@Override
public void keyPressed(KeyEvent e) {
char z = e.getKeyChar();
if (z=='w') y++;
if (z=='s') y--;
if (z=='a') x--;
if (z=='d') x++;
repaint();
}
@Override
public void keyReleased(KeyEvent e) {
throw new UnsupportedOperationException("Not supported yet.");
}
}
Kółko się wyświetla, ale nie porusza. Czy ktoś mi może powiedzieć dlaczego?