【发布时间】:2014-04-30 13:15:43
【问题描述】:
我正在制作一个自定义文本字段(绘制文本而不是使用 JTextField)。我可以输入字符,但退格键只清除一个字符。然后如果我再写一些东西,我可以再次删除一个字符。我不知道为什么。
键监听器:
class KeyController implements KeyListener {
public void keyPressed(KeyEvent e) {
if (!chat.getUsing()) {
player.keyPressed(e);
} else if (e.getKeyCode() == KeyEvent.VK_BACK_SPACE) {
chat.keyTyped(e);
}
if (e.getKeyCode() == KeyEvent.VK_ENTER) {
if (chat.getUsing()) {
chat.setUsing(false);
} else {
chat.setUsing(true);
}
}
}
public void keyReleased(KeyEvent e) {
if (!chat.getUsing()) {
player.keyReleased(e);
}
}
public void keyTyped(KeyEvent e) {
if (chat.getUsing() && e.getKeyCode() != KeyEvent.VK_BACK_SPACE) {
chat.keyTyped(e);
}
}
}
聊天对象中的keyTyped()方法:
public void keyTyped(KeyEvent ev) {
if (ev.getKeyCode() != KeyEvent.VK_BACK_SPACE) {
currentText += ev.getKeyChar();
} else {
if (currentText.length() > 0) {
currentText = currentText.substring(0, currentText.length() - 1);
}
}
}
我正在绘制 currentText 字符串。
【问题讨论】:
-
JTextField中允许使用哪些字符? -
我不知道,但它是如何进入主题的?
-
您是否尝试在文本字段中键入并动态绘制该文本?
标签: java string swing jtextfield keylistener