• Advertisement
Sign in to follow this  

Moving an image

This topic is 2051 days old which is more than the 365 day threshold we allow for new replies. Please post a new topic.

If you intended to correct an error in the post then please contact us.

Recommended Posts

import java.awt.event.KeyEvent;
import java.awt.event.KeyListener;

import javax.swing.*;

public class View extends JFrame implements KeyListener
{
JPanel jp = new JPanel();
JLabel jl1 = new JLabel();

ImageIcon img = new ImageIcon(getClass()
.getResource("/images/Standing.png"));

static int Xposition = 0;
static int Yposition = 300;

public View()
{
setTitle("GG");
setSize(800, 600);
setResizable(false);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setVisible(true);
jp.setLayout(null);
setLocationRelativeTo(null);
jl1.setIcon(img);
jp.add(jl1);
jl1.setBounds(Xposition, Yposition, jl1.getIcon().getIconWidth(), jl1
.getIcon().getIconHeight());
add(jp);
validate();
}

public static void main(String[] args)
{
View view = new View();

}

@Override
public void keyPressed(KeyEvent e)
{

int keyCode = e.getKeyCode();

}

@Override
public void keyReleased(KeyEvent e)
{

}

@Override
public void keyTyped(KeyEvent e)
{


}
}


once I have loaded an image into the JFrame how can I make it move with the arrow keys I saw some tutorials how to do it if you draw a figure yourself but how to do with an actual image you have loaded ?

Share this post


Link to post
Share on other sites
Advertisement
You need to have a variable for the image you loaded and an x and y position for it. You can then use some a boolean in your keyPressed method. I have been working a lot more in c++ lately, but used to work with java a good bit for some software. I always just changed the x and y, but there may be some better ways to do this. I don't believe this code will actually work as I'm a little too lazy to look up some of the syntax's, but you get the point. There are several ways of doing this which may be better, but this should work.



public boolean left = false;

...
public void keyPressed(KeyEvent e)
{

int keyCode = e.getKeyCode();

...

if(e.keyCode == keyEvent.VK_A){
left = true;
}
}

...

public void moveLeft(){
if(left){
playerX -= 10;
}
}

Share this post


Link to post
Share on other sites
This would be a great time to look into LWJGL (Light Weight Java Game Library) since it is a binding to OpenGL (Minecraft is using this!) it will provide relatively advanced graphics. There is nothing wrong using Swing as your backbone, and if it is, I suggest you look into "Killer Game Programmer in Java" which does a nice job of explaining game programming using Java with Swing.

CXD

Share this post


Link to post
Share on other sites

import java.awt.event.KeyEvent;
import java.awt.event.KeyListener;

import javax.swing.*;

public class View extends JFrame implements KeyListener
{
JPanel jp = new JPanel();
JLabel jl1 = new JLabel();

ImageIcon img = new ImageIcon(getClass()
.getResource("/images/Standing.png"));

static int Xposition = 0;
static int Yposition = 300;

public View()
{
setTitle("GG");
setSize(800, 600);
setResizable(false);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setVisible(true);
jp.setLayout(null);
setLocationRelativeTo(null);
jl1.setIcon(img);
jp.add(jl1);
jl1.setBounds(Xposition, Yposition, jl1.getIcon().getIconWidth(), jl1
.getIcon().getIconHeight());
add(jp);
validate();
}

public static void main(String[] args)
{
View view = new View();

}

@Override
public void keyPressed(KeyEvent e)
{

int keyCode = e.getKeyCode();

}

@Override
public void keyReleased(KeyEvent e)
{

}

@Override
public void keyTyped(KeyEvent e)
{


}
}


once I have loaded an image into the JFrame how can I make it move with the arrow keys I saw some tutorials how to do it if you draw a figure yourself but how to do with an actual image you have loaded ?


Try not to think so much about the idea of "moving the image". Think instead of tracking the position of the image (x and y locations). Key presses change the position. Then, you need to need to repaint your JPanel, which will get the current x and y positions and paint the image in that location.

If you still need help, I can expand on that further.

Share this post


Link to post
Share on other sites
Sign in to follow this  

  • Advertisement