我正在尝试创建一个应用程序,用户点击按钮/或点击 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/