Hello everyone on daniweb!:) I'm trying to make a programme which will move a picture to the sides when pressing the right or left arrowkeys. I did successfully put a picture in and I was able to change the side coordinates(called "side" in the programme) to make the picture move. However now I want it to be done with KeyListener. I have been trying to browse the internet for help but I havnt yet found anything which worked. One problem is that I dont know what to add the keylistener to(now its added to "img" because I dont know better). Does anybody know how I can make this work? I'll be so thankfull for your help!:)
Here is the code:
import java.awt.Dimension;
import java.awt.Graphics;
import java.awt.Image;
import javax.swing.ImageIcon;
import javax.swing.JFrame;
import javax.swing.JPanel;
import java.awt.event.KeyEvent;
import java.awt.event.KeyListener;
public class Background3
{
public static void main(String[] skit)
{
ImagePanel panel = new ImagePanel(new ImageIcon("Projektbilder/Bakgrund.png").getImage());
JFrame frame = new JFrame();
frame.getContentPane().add(panel);
frame.setSize(500,500);
frame.setVisible(true);
}
}
class ImagePanel extends JPanel
{
private int side=0;
private Image img;
public ImagePanel(String img)
{
this(new ImageIcon(img).getImage());
}
public ImagePanel(Image img)
{
this.img = img;
Dimension size = new Dimension(img.getWidth(null), img.getHeight(null));
setPreferredSize(size);
setMinimumSize(size);
setMaximumSize(size);
setSize(size);
setLayout(null);
}
img.addKeyListener(this);
public void keyTyped(KeyEvent e)
{
if(e.getKeyCode() == e.VK_RIGHT)
{
side++;
repaint();
}
else if (e.getKeyCode() == e.VK_LEFT)
{
side--;
repaint();
}
}
public void keyPressed(KeyEvent e)
{
}
public void keyReleased(KeyEvent e)
{
}
public void paintComponent(Graphics g)
{
g.drawImage(img, side, 0, null);
}
}