java - 如何在 JTextField 的开头输入文本
问题描述
有没有办法添加功能,使用户能够输入 JTextField 但光标停留在输入的开头,从而使文本向后?
例子:
用户类型“5”
5 显示
用户类型“9”
显示 95
解决方案
如果您只需要对数字进行此操作,我建议您使用JSpinner
组件而不是JTextField
. 但是使用 textField 你可以像这样实现它:
JTextField field = new JTextField();
AbstractDocument document = (AbstractDocument) field.getDocument();
document.setDocumentFilter(new DocumentFilter() {
@Override
public void insertString(FilterBypass fb, int offset, String string, AttributeSet attr)
throws BadLocationException {
offset = 0;//Insert string at offset 0
super.insertString(fb, offset, string, attr);
}
@Override
public void replace(FilterBypass fb, int offset, int length, String text, AttributeSet attrs)
throws BadLocationException {
offset = 0; //Insert string at offset 0
super.replace(fb, offset, length, text, attrs);
}
});
推荐阅读
- sql - 如何在执行计算时迭代 SQL 中的值?
- reactjs - 用于 img 单选按钮的 React 使用表单
- azure-devops - 如何在 VSTS 构建定义中使用 $(Rev:r)?
- php - PHP:选择未写入 HTML
- c++ - 在 QNX 中插入 std::basic_ostream 实例化的输出时出现内存错误
- javascript - 来自 infogram 的奇怪的 javascript 嵌入代码
- c - 二进制文件打印键搜索 c
- django - 编辑时 Django 管理员内联唯一约束违规
- html - 选中复选框时如何显示复选标记?
- c# - XPath 表达式在组合时不起作用