Swing JTextField空间输入内容的bug
有一个文本框JTextField,现有的功能是:只能输入数字,而且最多只能输入6位数。但目前有个bug,比如我输入1234,然后双击,这时数字就全选中了,我就可以重新输入...
有一个文本框JTextField,现有的功能是:只能输入数字,而且最多只能输入6位数。
但目前有个bug,比如我输入1234,然后双击,这时数字就全选中了,我就可以重新输入内容,这状态是正确的。
但是当如果我输入6位数(在允许的长度下输入满),这时再双击,数字虽然全选中了,但是没法输入内容!只能按退格键删除再输入。
怎么能解决这种双击之后无法输入内容的bug呢?
现在的代码如下:
public JTextField getMenusTaxisIdText() {
if (menusTaxisIdText == null) {
menusTaxisIdText = new JTextField();
menusTaxisIdText.setPreferredSize(new Dimension(100, 27));
menusTaxisIdText.addKeyListener(new KeyAdapter() {
public void keyTyped(KeyEvent e) {
pressEnter(queryButton, e, true);
if(menusTaxisIdText.getText().length()>5){
e.consume();
}
}
});
}
protected void pressEnter(JButton queryButton, KeyEvent e, boolean isNum) {
char c = e.getKeyChar();
if (c == '\n') {
if (queryButton != null)
queryButton.doClick();
}
if (isNum) {
if (Character.isDigit(c))
return;
e.consume();
}
} 展开
但目前有个bug,比如我输入1234,然后双击,这时数字就全选中了,我就可以重新输入内容,这状态是正确的。
但是当如果我输入6位数(在允许的长度下输入满),这时再双击,数字虽然全选中了,但是没法输入内容!只能按退格键删除再输入。
怎么能解决这种双击之后无法输入内容的bug呢?
现在的代码如下:
public JTextField getMenusTaxisIdText() {
if (menusTaxisIdText == null) {
menusTaxisIdText = new JTextField();
menusTaxisIdText.setPreferredSize(new Dimension(100, 27));
menusTaxisIdText.addKeyListener(new KeyAdapter() {
public void keyTyped(KeyEvent e) {
pressEnter(queryButton, e, true);
if(menusTaxisIdText.getText().length()>5){
e.consume();
}
}
});
}
protected void pressEnter(JButton queryButton, KeyEvent e, boolean isNum) {
char c = e.getKeyChar();
if (c == '\n') {
if (queryButton != null)
queryButton.doClick();
}
if (isNum) {
if (Character.isDigit(c))
return;
e.consume();
}
} 展开
1个回答
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询