Java 无法显示图像
我是编程新手,你能告诉我我的代码有什么问题吗。这个 Fillova运行良好,但尝试用.gif文件替换它失败,窗口被打开 什么都看不到Java 无法显示图像,java,drawimage,Java,Drawimage,我是编程新手,你能告诉我我的代码有什么问题吗。这个 Fillova运行良好,但尝试用.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.Buff
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");
写入
if(img1==null)System.out.println(“null”)
在Image img1
下,查看它是否为null。不要在Swing
程序中使用Thread.sleep()
。使用Swing Timer
将答案设置为正确答案请^^^,如果它解决了您的问题(似乎解决了^^^)是的,您解决了。。。答案集。