- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我不知道这里出了什么问题,我刚刚开始编码,我在互联网上进行了搜索,但找不到答案,请不要让答案听起来很复杂。谢谢我正在尝试制作一款类似马里奥的游戏,但这似乎很碍事,但很快我就会变得更好
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 。最好在 JComponent
或 JPanel
和 @Override
paintComponent
上绘制并调用 super.paintComponent
且不 绘制
。
从 Event Dispatch Thread 运行 Swing 应用程序。请参阅Intial Threads .
setVisible
之后 setLocationXxx
。我敢打赌您想知道为什么您的用户界面在左上角闪烁并移动到中心。 这就是原因。
关于java - 用 superg 重新绘制会导致空白..netbeans,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22085673/
我不知道这里出了什么问题,我刚刚开始编码,我在互联网上进行了搜索,但找不到答案,请不要让答案听起来很复杂。谢谢我正在尝试制作一款类似马里奥的游戏,但这似乎很碍事,但很快我就会变得更好 int x, y
我是一名优秀的程序员,十分优秀!