Sign in to follow this  
PsionicTransvection

Moving an image

Recommended Posts

[CODE]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)
{


}
}[/CODE]

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
DeafTV    1705
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.

[CODE]

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;
}
}
[/CODE]

Share this post


Link to post
Share on other sites
OscarYang    96
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
larsbutler    733
[quote name='PsionicTransvection' timestamp='1339178990' post='4947432']
[CODE]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)
{


}
}[/CODE]

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 ?
[/quote]

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

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

Sign in to follow this