我有一个文本字段,我只接受键盘上的数字,但现在我必须更改它,因为它是“价格文本字段”,我还需要接受一个点”。“对于任何价格。
我怎样才能改变这个以得到我需要的?
ptoMinimoField = new JTextField();
ptoMinimoField.setBounds(348, 177, 167, 20);
contentPanel.add(ptoMinimoField);
ptoMinimoField.setColumns(10);
ptoMinimoField.addKeyListener(new KeyAdapter() {
public void keyTyped(KeyEvent e) {
char caracter = e.getKeyChar();
if (((caracter < '0') || (caracter > '9'))
&& (caracter != '\b')) {
e.consume();
}
}
});
JTextField txField=新的双JTextField();
创建一个文件DoubleJTextField.java和快乐
public class DoubleJTextField extends JTextField {
public DoubleJTextField(){
addKeyListener(new KeyAdapter() {
public void keyTyped(KeyEvent e) {
char ch = e.getKeyChar();
if (!isNumber(ch) && !isValidSignal(ch) && !validatePoint(ch) && ch != '\b') {
e.consume();
}
}
});
}
private boolean isNumber(char ch){
return ch >= '0' && ch <= '9';
}
private boolean isValidSignal(char ch){
if( (getText() == null || "".equals(getText().trim()) ) && ch == '-'){
return true;
}
return false;
}
private boolean validatePoint(char ch){
if(ch != '.'){
return false;
}
if(getText() == null || "".equals(getText().trim())){
setText("0.");
return false;
}else if("-".equals(getText())){
setText("-0.");
}
return true;
}
}
我只是使用了一个try
-catch
块:
try {// if is number
Integer.parseInt(String);
} catch (NumberFormatException e) {
// else then do blah
}
按照Oracle的建议,使用格式化的文本字段
格式化文本字段为开发人员提供了一种方法,可以指定可以在文本字段中键入的有效字符集。
amountFormat = NumberFormat.getNumberInstance();
...
amountField = new JFormattedTextField(amountFormat);
amountField.setValue(new Double(amount));
amountField.setColumns(10);
amountField.addPropertyChangeListener("value", this);
我正在开发一个数独小程序,我想制作它的单元格(扩展JTextField),以便它只接受0-9和长度为1之间的整数。稍后我会对它进行更多限制(以便它符合游戏规则)。我从: 在这里,我试图过滤输入,对于开始,我只是试图将其限制为整数和一个数字,但似乎我可以输入任意多的数字,而最后一行不会被触发。 想在这里得到一些帮助,谢谢:
我希望我的文本字段只接受数字(数字)和一个点,因为这是一个用户可以在其中写入产品价格的字段。我有这个代码,但它不能很好地工作,它只接受数字和删除。 有人能帮我修一下吗?
我看遍了整个网络,所有我尝试过的东西都没用。。。。 我发现我可以使用一些JTextFormatterField,但它不起作用。 然后我发现我可以将DocumentFilter与正则表达式一起使用,我所做的是: 但它不起作用。。。它只接受数字。我希望它也能接受点。我还需要它不要以点开头,也不要以点结尾。 我做错了什么?
注意:下面我讨论的文本字段是一个MFXTextField,我从MaterialFX获得。 我已经搜索了很多关于如何在JavaFX中创建只接受数字的文本字段的内容。我发现了很多视频和帖子,但它们都不适合我,可能是因为它们太老了,只在过去工作过,我真的不知道。 所以,我有一个信用卡文本字段,我需要它来拒绝字母或数字以外的任何内容。这是我的文本字段: 下面是我的代码,它为常规TextField接受Tex
我试图将文本视图字符限制为英语。但如果我复制并粘贴非英语字符,我的文本视图就会接收这些条目。谁能帮我解决这个问题。UITextView应该只接受英文字符(包括特殊字符、数字和空格)。或者,当我点击done时,如果textview包含非英语字符,它应该验证并向我发送错误消息。 提前谢谢。 下面是我的代码 此代码不允许我输入空格和特殊字符。需要帮忙解决这个问题。
我是JAVA的新手,文本字段是否可以只接受数字输入?是否也有可能在代码内部有一个等式?例如:(毛额*10) 下面是我希望有数值输入的代码://Display private class Handler implements ActionListener{public void actionPerformed(ActionEvent e){