0

My problem is that the image is not showing on my java.

here is my code

MyGame.java

package mygame;

import javax.swing.*;
import java.awt.*;
import java.awt.event.*;

public class MyGame extends JFrame {
    Container c;
    Player p;
    MyGame()
    {
        this.setTitle("My Game");
        this.setSize(600, 400);
        this.setLocation(100, 100);
        this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        c = this.getContentPane();
	p = new Player();
	c.add(p);
	this.addKeyListener(p);
    }
    
    public static void main(String[] args) {
        MyGame m = new MyGame();
        m.setVisible(true);
    }
}

Player.java

package mygame;

import javax.swing.*;
import java.awt.*;
import java.awt.event.*;

public class Player extends JPanel implements KeyListener {
    int x=10,y=10, ctr=1;
    ImageIcon img = new ImageIcon("image.gif");
    
    public void paint (Graphics g)
    {
        super.paint(g);
        g.setColor(Color.GRAY);
        g.fillRect(0,0,600,400);
        g.drawImage(img.getImage(), x, y, null);
        
    }
    
    public void keyPressed(KeyEvent e){
        int i = e.getKeyCode();
        String key = KeyEvent.getKeyText(i);
        
        if (key.equals("Up"))
        {
            y=y-3;
            ctr=ctr%6+1;
            img = new ImageIcon("d"+ctr+".gif");
            this.repaint();
        }
    }
    
    public void keyReleased(KeyEvent e){}
    public void keyTyped(KeyEvent e){}
}
4
Contributors
7
Replies
8
Views
5 Years
Discussion Span
Last Post by hacknayan
1

Are you sure the image file is being found?
The code works for me.

BTW use the paintComponent method in Swing components vs paint

Edited by NormR1: n/a

Votes + Comments
great catch
0

and use KeyBindings instead of KeyListener

you have to setFocus() for JPanel, otherwise pretty to ignore any output from keyboard

0

i put the image inside the src folder with my .java files. but still not working

0

You can Keep copying the image to different folders until you find where the program is looking for it,
or Try creating a File object with the path to the image file you are using and print out the absolutePath of that file object to see where the JVM is looking for the file.

0

thnx. now it works. i put all the images outside the src folder and it works.

This topic has been dead for over six months. Start a new discussion instead.
Have something to contribute to this discussion? Please be thoughtful, detailed and courteous, and be sure to adhere to our posting rules.