下面是DocumentFilter
的一个示例。
AbstractDocument document = (AbstractDocument) textfield
.getDocument();
document.setDocumentFilter(new DocumentFilter() {
@Override
public void insertString(FilterBypass fb, int offset,
String string, AttributeSet attr)
throws BadLocationException {
super.insertString(fb, offset, string.toUpperCase(), attr);
}
@Override
public void replace(FilterBypass fb, int offset, int length,
String text, AttributeSet attrs)
throws BadLocationException {
super.insertString(fb, offset, text.toUpperCase(), attrs);
}
});
你有两个直接的选择。您可以提供自己的文档,这是一点点工作,或提供自己的DocumentFilter
或者,你只要谷歌一下,看看你发现了什么,比如http://www.java2s.com/Code/Java/Swing-JFC/DocumentFilterthatmapslowercaseletterstouppercase.htm例如:)
一个完整的工作示例可能会对您有所帮助
import java.awt.Dimension;
import java.awt.FlowLayout;
import javax.swing.JFrame;
import javax.swing.JTextField;
import javax.swing.text.AbstractDocument;
import javax.swing.text.AttributeSet;
import javax.swing.text.BadLocationException;
import javax.swing.text.DocumentFilter;
public class UpperCasedTextFieldTester extends JFrame {
/** */
private static final long serialVersionUID = -4767854098431909437L;
public UpperCasedTextFieldTester(){
setSize(200, 200);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setLayout(new FlowLayout(FlowLayout.LEFT));
DocumentFilter filter = new UppercaseDocumentFilter();
JTextField firstName = new JTextField();
firstName.setPreferredSize(new Dimension(100, 20));
((AbstractDocument) firstName.getDocument()).setDocumentFilter(filter);
JTextField lastName = new JTextField();
lastName.setPreferredSize(new Dimension(100, 20));
((AbstractDocument) lastName.getDocument()).setDocumentFilter(filter);
add(firstName);
add(lastName);
}
public static void main(String[] args) {
new UpperCasedTextFieldTester().setVisible(true);
}
}
class UppercaseDocumentFilter extends DocumentFilter {
public void insertString(DocumentFilter.FilterBypass fb, int offset,
String text, AttributeSet attr) throws BadLocationException {
fb.insertString(offset, text.toUpperCase(), attr);
}
public void replace(DocumentFilter.FilterBypass fb, int offset, int length,
String text, AttributeSet attrs) throws BadLocationException {
fb.replace(offset, length, text.toUpperCase(), attrs);
}
}
问题内容: 我想创建JTextField,输入字符限于“ abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVXYWZZ0123456789 +&@#/%?=〜_- |!:,。;”之类的输入字符。所以我尝试覆盖 但这不是我想要的,因为用户无法再按ctrl-c ctrl-v ctrl-x …所以我添加了 到if条件,但现在用户可以粘贴不适当的输入,即’(’
问题内容: 我知道这个问题一定已经被提出并回答了一百万遍了,但是我找不到一个简单的解决方案。我有一个JTextField,它只接受正整数作为输入。我需要一种方法来确保此处没有其他输入。 我已经有一个附加到此控件。删除此侦听器在那里要处理的其他代码,我得到了: 如你所见,我正在尝试使用来检查刚刚按下的键是否在整数范围内。这似乎有效。但是我想做的就是,如果该条目不在此范围内,则只需忽略该条目。该代码本
我正在开发一个Java应用程序,遇到了一个我自己似乎无法解决的问题。 我在上设置了,只允许数字输入,但是默认值是文本。我有一个按钮,可以将s重置为默认值,但由于的原因,它无法正常工作。 我怎样才能克服这个问题? 谢啦
我有关于在JTextField打字的问题。我的程序搜索通过几个csv文件和寻找指定的JTextField字符串。我有添加到readLine函数". toLowerCase"读取所有字符串作为小写。在写入JTextField时,是否可以将JTextField设置为自动将大写转换为小写? if(line.toLowerCase()。包含(searchedString))
主要内容:1 Java JTextField的介绍,2 Java JTextField的声明,3 Java JTextField的构造方法,4 Java JTextField的方法,5 Java JTextField的案例1,6 Java JTextField的案例21 Java JTextField的介绍 JTextField类的对象是一个文本组件,允许编辑单行文本。它继承了JTextComponent类。 2 Java JTextField的声明 我们来看一下javax.swing.JTex
问题内容: 无论计算机上设置的时区如何,我都需要对GMT / UTC进行任何与时间相关的操作。在代码中有任何方便的方法吗? 为了明确起见,我将所有操作都使用数据库服务器时间,但是它是根据本地时区格式化的。 谢谢! 问题答案: OP回答了这个问题,以更改正在运行的JVM的单个实例的默认时区,并设置系统属性: 如果从数据库检索Date / Time / Timestamp对象时需要设置特定的时区,请使