jac*_*nad 1 java swing netbeans jframe jtextfield
JTextField是一个初始化为零的计算器显示,显示带前导0的十进制数字是错误的形式,如0123或00123. NetBeans Swing JFrame中的数字按钮(0..9)使用append()[below]删除前导零,但用户可能更喜欢键盘鼠标,并且还需要处理非数字字符.
private void append(String s) {
if (newEntry) {
newEntry = false;
calcDisplay.setText(s);
} else if (0 != Float.parseFloat(calcDisplay.getText().toString())) {
calcDisplay.setText(calcDisplay.getText().toString() + s);
}
}
Run Code Online (Sandbox Code Playgroud)
您可以通过添加自定义KeyListener来限制输入到JTextField的字符.这是一个展示这个想法的简单示例:
myTextField.addKeyListener(new KeyAdapter() {
@Override
public void keyTyped(KeyEvent e) {
char c = e.getKeyChar();
if (!Character.isDigit(c)) {
e.consume(); // Stop the event from propagating.
}
}
});
Run Code Online (Sandbox Code Playgroud)
当然,您需要考虑删除特殊键和CTRL-C之类的组合,因此您的KeyListener应该更复杂.甚至可以免费使用实用程序来为您完成大部分繁重的工作.
| 归档时间: |
|
| 查看次数: |
2087 次 |
| 最近记录: |