有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java Eclipse ADT小程序空白屏幕

我试图在我的小程序上显示一些图像,并让它们四处移动,但每当我通过小程序运行我的项目时,我得到的只是一个空白/黑屏。我可以改变背景的颜色,但我看不到我的任何图像。此外,当我尝试启动小程序时,小程序没有初始化。以下是代码:

package test;

import java.applet.Applet;
import java.awt.Color;
import java.awt.Frame;
import java.awt.Graphics;
import java.awt.Image;
import java.awt.event.KeyEvent;
import java.awt.event.KeyListener;
import java.net.URL;

public class MCTaRE extends Applet implements Runnable, KeyListener {

    private Character character;
    private Image image, robot;
    private Graphics graphics;
    private URL base;

    @Override
    public void init() {
        setSize(800, 480);
        setBackground(Color.BLACK);
        setFocusable(true);
        Frame frame = (Frame) this.getParent().getParent();
        frame.setTitle("Test");

        robot = getImage(base, "data/character.png");
    }

    @Override
    public void start() {
        Thread thread = new Thread(this);
        thread.start();

        character = new Character();
    }

    @Override
    public void stop() {

    }

    @Override
    public void run() {
        while (true) {
            repaint();
            try {
                Thread.sleep(17);
            } catch (InterruptedException e) {
                e.printStackTrace();
            }
        }
    }

    @Override
    public void update(Graphics g) {
        if (image == null) {
            image = createImage(this.getWidth(), this.getHeight());
            graphics = image.getGraphics();
        }

        // graphics.setColor(getBackground());
        graphics.fillRect(0, 0, getWidth(), getHeight());
        // graphics.setColor(getForeground());
        paint(graphics);

        g.drawImage(image, 0, 0, this);

    }

    @Override
    public void paint(Graphics g) {
        g.drawImage(robot, character.getInitX() - 61,
                character.getInitY() - 63, this);
    }

    public void KeyPressed(KeyEvent e) {
        switch (e.getKeyCode()) {
        case KeyEvent.VK_SPACE:
            System.out.println("Space");
            break;
        }
    }

    public void KeyReleased(KeyEvent e) {

    }

    public void keyTyped(KeyEvent e) {

    }

}

package test;

public class Character {
    private int initX = 100;
    private int initY;

    private int speedX = 0;

    public void update(){
        //if (key listener is at the top){
                moveLeft();
    //}
                //else {
                    stop();
                //}

        initY = 200;
    }

    public int getInitX() {
        return initX;
    }

    public int getInitY() {
        return initY;
    }

    public int getSpeedX() {
        return speedX;
    }

    public void setInitX(int initX) {
        this.initX = initX;
    }

    public void setInitY(int initY) {
        this.initY = initY;
    }

    public void setSpeedX(int speedX) {
        this.speedX = speedX;
    }

    public void moveLeft(){
        speedX = -5;
    }

    public void stop(){
        speedX = 0;
    }
}

如果我能帮上忙,我将不胜感激。我可以尝试使用AVD,但我认为这会让事情变得更加复杂。而日本人也不是一个选择


共 (0) 个答案