java - JTextField 一次只允许一个字母?

标签 java swing jbutton jtextfield jlist

我正在尝试创建一个应用程序,用户点击按钮/或点击 Enter 键,输入就会转到 JList。我已经成功创建了应用程序,但在清除输入的 JTextField 时遇到了一个小问题。它只允许我一次输入一个符号。如果我将其从 ActionListener 和 KeyListener 中取出,它将起作用:

textField.setText("");

有没有办法让用户输入他们想要的符号数量?我的代码的错误部分是:

final JButton btnAdd = new JButton("ADD");
    btnAdd.setToolTipText("Add the item to the list");
    btnAdd.setBounds(157, 98, 68, 23);
    contentPane.add(btnAdd);
    btnAdd.addActionListener(new ActionListener(){
        public void actionPerformed(ActionEvent ae) {
            v.add(textField.getText());
            list.setListData(v);
            textField.setText("");
        }
    });

    textField = new JTextField();
    textField.setToolTipText("Enter the item here");
    textField.setBounds(10, 99, 137, 20);
    contentPane.add(textField);
    textField.setColumns(10);
    textField.addKeyListener(new KeyAdapter(){
        public void keyPressed(KeyEvent ke){
            btnAdd.setEnabled(true);

            if(ke.getKeyCode()==KeyEvent.VK_ENTER)
                btnAdd.doClick();
                textField.setText("");
        }
    });

最佳答案

public void keyPressed(KeyEvent ke){
        btnAdd.setEnabled(true);

        if(ke.getKeyCode()==KeyEvent.VK_ENTER)
            btnAdd.doClick();
            textField.setText("");
}

你的textField.setText("");位于 if 语句之外。因此,每次用户按下某个键时,您的文本字段都会被清除。

应该是:

public void keyPressed(KeyEvent ke){
        btnAdd.setEnabled(true);

        if(ke.getKeyCode()==KeyEvent.VK_ENTER){
            btnAdd.doClick();
            textField.setText("");
        }
}

关于java - JTextField 一次只允许一个字母?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22207735/

相关文章:

java - 是否可以序列化hibernate EntityManagerFactory?

java - 如何将操作事件监听器的多个结果添加到对话框

java - JComboBox 更新自身的合适监听器是什么?

java - 单击按钮将 ImageIcon 更改为另一张图片

java - 创建一个循环,以便 ActionListener 在单击 Jbutton 时遍历图标列表

java - 从我的桌面连接到 Cloudera VM

java - 通过电子邮件将 Excel 文件(在内存中)作为 Google App Engine 上的附件发送

java - 如何从谷歌翻译短语手册中获取单词?

java - 如何在 Java Swing 中对单击执行多个操作

java - 了解 Netbeans GUI 生成的代码中的按钮/鼠标监听器