我想将显示的字符串从“start”更改为“keyup”或“keydown”,但该字符串似乎没有改变..
import java.awt.Event;
import java.awt.Graphics;
import javax.swing.JApplet;
public class Applet extends JApplet {
String str = "start..";
public void init() {
}
public void paint(Graphics g) {
g.drawString(str, 200, 200);
}
public boolean keyDown(Event evt , int key) {
str = "keyDown";
repaint();
return true;
}
public boolean keyUp(Event evt , int key) {
str = "keyUp";
return true;
}
}
最佳答案
- 不要使用 Java 1.1 中已弃用的方法。而是实现
KeyListener
或使用key bindings . - 确保小程序可聚焦并具有输入焦点。
例如使用KeyListener
// <applet code='KeyApplet' width=200 height=40></applet>
import java.awt.event.*;
import java.awt.*;
import javax.swing.JApplet;
public class KeyApplet extends JApplet implements KeyListener {
String str = "start..";
public void init() {
setFocusable(true);
requestFocusInWindow();
addKeyListener(this);
setBackground(Color.yellow);
}
public void paint(Graphics g) {
super.paint(g);
g.setColor(getBackground());
g.fillRect(0,0,getWidth(),getHeight());
g.setColor(Color.black);
g.drawString(str, 20, 20);
}
public void keyTyped(KeyEvent evt) {}
public void keyPressed(KeyEvent evt) {
str = "keyDown";
repaint();
}
public void keyReleased(KeyEvent evt) {
str = "keyUp";
repaint();
}
}
关于java - 为什么小程序上显示的文本在 "keydown"或 "keyup"事件时不会更改?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8778309/