gpt4 book ai didi

java - 用 superg 重新绘制会导致空白..netbeans

转载 作者:行者123 更新时间:2023-12-01 23:10:37 24 4
gpt4 key购买 nike

我不知道这里出了什么问题,我刚刚开始编码,我在互联网上进行了搜索,但找不到答案,请不要让答案听起来很复杂。谢谢我正在尝试制作一款类似马里奥的游戏,但这似乎很碍事,但很快我就会变得更好

int x, y;



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

if(KeyCode == e.VK_LEFT) {
x--;
}
if(KeyCode == e.VK_RIGHT) {
x++;
}
if(KeyCode == e.VK_UP) {
y--;
}
if(KeyCode == e.VK_DOWN) {
y++;
}
}
public void KeyReleased(KeyEvent e) {

}
}



public Wesley() {
addKeyListener(new AL());

setTitle("Wesley and the interuption");
setSize(500, 500);
setResizable(false);
setVisible(true);
setLocationRelativeTo(null);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

x = 150;
y = 150;
}

@Override
public void paint(Graphics g) {
g.fillOval(x, y, 15, 15);

repaint();

}

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

最佳答案

  • 不要paint方法中使用repaint()。您可能想在您的 keyXxx 方法之一中执行此操作。

  • 如果您paint 方法中调用 super.paint(g);,则会破坏绘制链。因此,请确保您调用它。

    @Override
    public void paint(Graphics g) {
    super.paint(g);
    }
  • 还可以使用@Override注释,这样您就知道您正在正确地重写方法。此 KeyReleased 不是 key 发布功能的有效覆盖。你的外壳错了。因此,释放 key 不会产生任何作用。

<小时/>

旁注

  • 考虑使用 Key Bindings与 Swing 应用程序一起实现特定的关键功能。您可能遇到 KeyListener

  • 的焦点问题
  • 参见Performinf Custom Painting 。最好在 JComponentJPanel@Override paintComponent 上绘制并调用 super.paintComponent 绘制

  • Event Dispatch Thread 运行 Swing 应用程序。请参阅Intial Threads .

  • setVisible 之后 setLocationXxx。我敢打赌您想知道为什么您的用户界面在左上角闪烁并移动到中心。 就是原因。

关于java - 用 superg 重新绘制会导致空白..netbeans,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22085673/

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