我正在为课程创建一个计算器,我需要限制用户添加一个小数点。在当前状态下,他们可以添加任意数量的内容。
我对Java很新,所以忍受我......
以下是创建文本框的位置:
public InLab05() {
setLayout(new GridBagLayout());
GridBagConstraints c = new GridBagConstraints();
JTextField result = new JTextField();
c.fill = GridBagConstraints.HORIZONTAL;
c.gridx = 0;
c.gridy = 0;
c.gridwidth = 4;
add(result, c);
答案 0 :(得分:0)
在输入时,您可以运行result.indexOf(“。”);如果它返回-1,则允许添加用户输入,因为您知道该字符串不包含。
答案 1 :(得分:0)
使用它,即使他继续输入更多数字,它也只保留一个十进制数字。
result.getDocument().addDocumentListener(new DocumentListener() {
public void changedUpdate(DocumentEvent e) {
check();
}
public void removeUpdate(DocumentEvent e) {
check();
}
public void insertUpdate(DocumentEvent e) {
check();
}
private void check(){
String str=result.getText();
if(str.length()- str.lastIndexOf('.')>2){
result.setText(str.subString(0,str.lastIndexOf('.')+2);
}
}
});