编程语言
首页 > 编程语言> > java-无法显示图像

java-无法显示图像

作者:互联网

我是编程新手,请您告诉我代码中的问题是什么.该
        fillOval运行良好,但尝试将其替换为.gif文件失败,窗口被打开
        什么都没有看到…

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


}

解决方法:

我不确定您的问题在哪里,但我最好的猜测是:

您的图片位置不合适! (忽略其他类,这只是一个测试项目^^)

我已经复制/粘贴了您的代码,我使用了自定义图片,因此对我来说效果很好!

在您的Eclipse项目中创建一个文件夹,但不要在您的源目录(!!!)中,然后参考如下图像:

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

标签:java,drawimage
来源: https://codeday.me/bug/20191010/1885739.html