Изображение Java после моего курсора

1

Я хотел бы сделать что-то похожее на курсор (я не получаю никаких ошибок). Поэтому в основном я получаю координаты, когда я вхожу в апплет, и, основываясь на них, у меня есть мое изображение. Вот код... Не могли бы вы рассказать мне, где я ошибаюсь? благодаря

import java.applet.Applet;
import java.awt.Color;
import java.awt.Graphics;
import java.awt.Image;
import java.awt.Point;
import java.awt.event.KeyEvent;
import java.awt.event.KeyListener;
import java.awt.event.MouseEvent;
import java.awt.event.MouseListener;
import java.awt.event.MouseMotionListener;
import java.io.IOException;
import java.net.URL;
import javax.imageio.ImageIO;

public class Z_applets extends Applet implements 
        KeyListener, MouseListener, MouseMotionListener {

    int z = 100;
    int t = 100;
    // boolean gigel = true;
    //----------------- Images
    Image image;
    //-----------------
    //----------------- Mouse Coordinates
    Point p = null;
    int x;
    int y;
    //----------------------------------
    Color color = Color.GREEN;

    public void init() {
        addKeyListener(this);
        addMouseListener(this);
    }

    public void paint(Graphics g) {
        setBackground(Color.BLACK);
        g.setColor(color);
        g.drawImage(image, x, y, this);
        g.fillOval(z, t, 15, 15);
    }

    public void update(Graphics g) {
        paint(g);
    }

    public void loadImage() {
//URL url = getClass().getResource("borat.jpg"); 
//image = getToolkit().getImage(url);
        try {
            URL url = new URL(getCodeBase(), "trollface.png");
            System.out.println(getCodeBase());
            image = ImageIO.read(url);
        } catch (IOException e) {
            System.out.println("error" + e.getMessage());
        }
    }

    @Override
    public void keyTyped(KeyEvent ke) {
    }

    @Override
    public void keyPressed(KeyEvent ke) {
        char option;
        option = ke.getKeyChar();
        switch (option) {
            case 'w': {
                t--;
                repaint();
                break;
            }
            case 's': {
                t++;
                repaint();
                break;
            }
            case 'a': {
                z--;
                repaint();
                break;
            }
            case 'd': {
                z++;
                repaint();
                break;
            }
            case '1': {
                color = Color.GREEN;
                break;
            }

            case '2': {
                color = Color.RED;
                break;
            }

            case '3': {
                color = Color.YELLOW;
                break;
            }
//            case 'r':
//            {
//                loadImage();
//                repaint();
//                break;
//            }
        }
    }

    @Override
    public void keyReleased(KeyEvent ke) {
    }

    @Override
    public void mouseClicked(MouseEvent me) {
//    p = me.getPoint();
//    x = p.x;
//    y = p.y;
//    repaint();       
    }

    @Override
    public void mousePressed(MouseEvent me) {
    }

    @Override
    public void mouseReleased(MouseEvent me) {
    }

    @Override
    public void mouseEntered(MouseEvent me) {
        // p=me.getPoint();
        //-------Debug--------
        System.out.println(p);
        System.out.println(p.x);
        System.out.println(p.y);
        //----------------------
        // x = p.x;
        //  y = p.y;
        //  repaint();
    }

    @Override
    public void mouseExited(MouseEvent me) {
    }

    @Override
    public void mouseDragged(MouseEvent me) {
    }

    @Override
    public void mouseMoved(MouseEvent me) {
        p = me.getPoint();
        x = p.x;
        y = p.y;
        repaint();
    }
}
  • 1
    Если вы скажете нам, что не так, мы можем сказать вам, где это не так.
  • 0
    "Можете ли вы сказать мне, где я не прав?" , - Переопределение рисования, без вызова super.paint, обновление состояния компонента из метода рисования, KeyListener, и вы, вероятно, хотите использовать MouseMotionListener
Теги:
awt
applet
keylistener
mouse-listeners

1 ответ

1
Лучший ответ

Не зная, какая проблема у вас есть, я полагаю, что изображение не перемещается. Я считаю, что вы не регистрируете MouseMotionListener так что делайте это и mouseMoved метод mouseMoved.

  • 0
    Посмотрите на основную ветку еще раз, пожалуйста. На этот раз я получаю сообщение об ошибке: prntscr.com/3cmg9h
  • 0
    @ ExtremeSwat хорошо, у вас есть исключение NullPointerException, поэтому, пожалуйста, отладьте и проверьте, что является нулевым. Это должно быть легкой задачей.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню