cannot display Image

旧巷老猫 提交于 2019-12-04 02:35:33

问题


I'm new being in programming, can you please tell me what is the problem in my code. The fillOval is operating well but trying to replace it with .gif file get failed, window is opened by nothing is viewed...

import java.awt.Color;
import java.awt.Graphics;
import java.awt.Graphics2D;
import java.awt.Image;
import java.awt.RenderingHints;
import java.awt.Toolkit;
import java.awt.image.BufferedImage;
import java.awt.image.ImageObserver;
import java.io.File;
import java.io.IOException;

import javax.imageio.ImageIO;
import javax.swing.ImageIcon;
import javax.swing.JComponent;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;

@SuppressWarnings("serial")
public class Game extends JPanel {

int x;
int y;

int inix=500;
int iniy=500;

int i=0; 
private void moveBall() {
    /*x = x + 1;
    y = y + 1;*/
    double degrees=(double) i;
    double radians=Math.toRadians(degrees);
    double Sinu=Math.sin(radians);
    double Sinu200=Math.sin(radians)*200;
    int SinuInt=(int) Sinu200;
    //y=500+SinuInt;
    y=iniy+SinuInt;
    double Cos=Math.cos(radians);
    double Cos200=Math.cos(radians)*200;
    int CosInt=(int) Cos200;
    //x=500+CosInt;
    x=inix+CosInt;


    i++;
    if (i==360){ i=0;}

            //System.out.println(Sinu+"   "+Sinu200+"   "+SinuInt +"   "+x);

        }


private int sin(double radians) {
    // TODO Auto-generated method stub
    return 0;
}

    @Override
public void paint(Graphics g) {
    super.paint(g);
    Graphics2D g2d = (Graphics2D) g;
    g2d.setRenderingHint(RenderingHints.KEY_ANTIALIASING,RenderingHints.VALUE_ANTIALIAS_ON);
    //g2d.setColor(Color.red);
    //g2d.fillOval(x, y, 50, 50);
    Image img1 = Toolkit.getDefaultToolkit().getImage("src/Images/MyIm.gif");
    g2d.drawImage(img1, x, y, this);


}

    public static void main(String[] args) throws InterruptedException {
    JFrame frame = new JFrame("Mini Tennis");
    Game game = new Game();
    frame.add(game);
    frame.setSize(1000, 1000);
    frame.setVisible(true);
    frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

    while (true) {
        game.moveBall();
        game.repaint();
        Thread.sleep(2);
    }
}


}

回答1:


i'm not sure where your problem is, but my very best guess would be:

your image location is not suitable! (ignore the other classes, it's just a test project ^^)

i've copy/pasted your code, i used my custom image and it works fine with me!

make an folder in your eclipse project BUT NOT IN YOUR SOURCE dir (!!!) and then refer to the image like this:

Image img1 = Toolkit.getDefaultToolkit().getImage("img/index.png");


来源:https://stackoverflow.com/questions/20633703/cannot-display-image

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!