在Java中禁用退格

时间:2011-11-24 08:42:58

标签: java

我正在创建一个打字程序,用户在其中键入一系列字符,但必须这样做而不会出现任何错误。在输入时,用户可以退格一个单词,但退格选项在按空格键时会结束(转到新单词)。

这是我目前的代码:

public synchronized void backSpace(){
    if (ttext.length() > 0) {
        ttext = ttext.substring(0, ttext.length() - 1);
    } else {
        typetext.append(" ");
    }
}

我正在寻找的方法是禁用退格功能,以便用户无法再编辑他们输入的内容。

2 个答案:

答案 0 :(得分:1)

您希望使用Key Bindings删除默认的退格操作。例如:

textField.getInputMap().put(KeyStroke.getKeyStroke("BACK_SPACE"), "none");

答案 1 :(得分:-2)

假设你使用的是Swing,你可以这样做:

import java.awt.event.*;
import javax.swing.*;

public class BackspaceCapture extends JDialog {

    public BackspaceCapture() {
        JTextField textField = new JTextField("A text field");
        textField.getKeymap().addActionForKeyStroke(
            KeyStroke.getKeyStroke(KeyEvent.VK_BACK_SPACE, 0), new AbstractAction() {
                public void actionPerformed(ActionEvent e) {
                    backSpace();
                }
            });

        add(textField);
        pack();
    }

    public void backSpace() {
        System.out.println("Backspace is pressed");
    }

    public static void main(String args[]) {
        JDialog dialog = new BackspaceCapture();
        dialog.setVisible(true);
    }
}

但是,由于存在很多编辑文本字段的方法,因此可能需要查看javax.swing.event.DocumentListener来控制文本。