我是编程的新手,请您告诉我代码中的问题。该 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);
}
}
}
答案 0 :(得分:0)
我不确定你的问题在哪里,但我最好的猜测是:
您的图片位置不合适! (忽略其他类,它只是一个测试项目^^)
我已经复制/粘贴了您的代码,我使用了我的自定义图像,它可以和我一起使用!
在你的eclipse项目中创建一个文件夹,但不要在你的SOURCE目录(!!!)中,然后参考这样的图像:
Image img1 = Toolkit.getDefaultToolkit().getImage("img/index.png");