gpt4 book ai didi

java - 如何在Java中制作圆形幻灯片?不是一直按

转载 作者:行者123 更新时间:2023-11-29 07:57:05 24 4
gpt4 key购买 nike

我想让椭圆在按住键时滑动。但它不会起作用!

我尝试了 while 循环,它什么也没做。

我有点困惑了它,但它仍然可读。我使用的是较低版本的 Java,所以有些东西看起来会有所不同。

import java.awt.Graphics;
import java.awt.Image;
import java.awt.event.KeyAdapter;
import java.awt.event.KeyEvent;
import javax.swing.JFrame;

public class TEST extends JFrame {

int x, y;

private Image dbgImage;
private Graphics dbg;

public TEST() {
addKeyListener(new AL());
setTitle("CIRCLE THING");
setSize(1000, 1000);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setVisible(true);
setResizable(true);
x = 150;
y = 150;
}

public class AL extends KeyAdapter {
public void keyPressed(KeyEvent e) {
int keyCode = e.getKeyCode();

if(keyCode == e.VK_D) {
x++;
}
if(keyCode == e.VK_A) {
x--;
}
if(keyCode == e.VK_W) {
y--;
}
if(keyCode == e.VK_S) {
y++;
}
}

public void keyReleased(KeyEvent e) {}
}

public void paint(Graphics g) {
dbgImage = createImage (getWidth(), getHeight());
dbg = dbgImage.getGraphics();
paintComponent(dbg);
g.drawImage(dbgImage, 0, 0, this);
}

public void paintComponent(Graphics g) {
g.fillOval(x, y, 90, 100);
repaint();
}

public static void main(String[] args) {
new TEST();
}
}

最佳答案

你不应该覆盖 paint()。

参见 Motion Using the Keyboard一些例子。该示例移动了一个标签,但许多概念是相同的。一个区别是,当您进行自定义绘制时,您负责在更改组件的属性时调用组件上的 repaint() 方法。在您更改要绘制图像的位置时的情况。

关于java - 如何在Java中制作圆形幻灯片?不是一直按,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17013597/

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