gpt4 book ai didi

Java 图像跟随我的光标

转载 作者:太空宇宙 更新时间:2023-11-04 06:51:38 25 4
gpt4 key购买 nike

我想做一些类似于光标的东西,(我没有收到错误)所以基本上我进入小程序后就会得到坐标,并根据它们绘制图像。这是代码...你能告诉我哪里错了吗?谢谢

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

最佳答案

在不知道您到底遇到什么问题的情况下,我认为图像没有被移动。我发现您没有注册 MouseMotionListener,因此请注册并实现 mouseMoved 方法。

关于Java 图像跟随我的光标,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23241617/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com