【发布时间】:2012-10-01 14:35:15
【问题描述】:
以下是我的小程序游戏的浓缩代码:
import java.applet.Applet;
import java.awt.event.*;
import java.awt.*;
public class Game extends Applet implements KeyListener, Runnable {
Button options = new Button("Options");
Thread thread = new Thread(this);
public void init() {
addKeyListener(this);
thread.start();
}
public void paint(Graphics graphics) {
// draw stuff
}
public void run() {
try {
while (true) {
thread.sleep(40);
repaint();
}
} catch (InterruptedException exception) {}
}
public void keyPressed(KeyEvent keyEvent) {
switch (keyEvent.getKeyCode()) {
case KeyEvent.VK_ESCAPE:
// pause game
add(options);
}
}
public void keyReleased(KeyEvent keyEvent) {}
public void keyTyped(KeyEvent keyEvent) {}
}
我的游戏按预期运行。但是,当用户按下Esc 时,我想暂停游戏并显示一个选项按钮。
问题是当我按下Esc 时,它会按预期暂停游戏。但是它不会在屏幕上显示按钮。我试图寻找解决方案无济于事。到底发生了什么?
【问题讨论】:
-
您使用的是什么布局管理器?你的绘画方法是做什么的?你打电话给
super.paint?另外,我个人会认真考虑使用基于 Swing 的 AWT 组件... -
我正在使用
BorderLayout。但是,即使我使用任何其他布局,它仍然不会显示按钮。 -
你的画法是什么?它是否调用
super.paint? -
没有。它不调用
super.paint。应该这样吗? -
另见Initial Threads,applet 中也需要。
标签: java applet awt keylistener runnable