Jump to content

  • Log In with Google      Sign In   
  • Create Account


Moving an image


Old topic!
Guest, the last post of this topic is over 60 days old and at this point you may not reply in this topic. If you wish to continue this conversation start a new topic.

  • You cannot reply to this topic
3 replies to this topic

#1 PsionicTransvection   Members   -  Reputation: 262

Like
0Likes
Like

Posted 08 June 2012 - 12:09 PM

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 ?

Sponsor:

#2 DeafTV   Members   -  Reputation: 1208

Like
0Likes
Like

Posted 08 June 2012 - 08:21 PM

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;
  }
  }

Fly Safe 7o


#3 ChaoSXDemon   Members   -  Reputation: 96

Like
0Likes
Like

Posted 09 June 2012 - 02:50 PM

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
Youtube:
My Channel

Video Lessons:
Java Programming Lessons

Tutorials Written (Not-Active):
Introduction to A.I.

#4 thok   Members   -  Reputation: 688

Like
0Likes
Like

Posted 12 June 2012 - 09:03 AM

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.




Old topic!
Guest, the last post of this topic is over 60 days old and at this point you may not reply in this topic. If you wish to continue this conversation start a new topic.



PARTNERS