Java JTextField在写入时转换为大写/小写
我有一个关于在JTextField中键入的问题。我的程序通过几个csv文件进行搜索,并查找JTextField字符串中指定的内容。我已经添加了readLine函数“.toLowerCase”来将所有字符串读取为小写。在写入JTextField时,是否可以将JTextField设置为自动将大写转换为小写? 如果(line.toLowerCase().contains(searchedString))。。。Java JTextField在写入时转换为大写/小写,java,string,jtextfield,readline,Java,String,Jtextfield,Readline,我有一个关于在JTextField中键入的问题。我的程序通过几个csv文件进行搜索,并查找JTextField字符串中指定的内容。我已经添加了readLine函数“.toLowerCase”来将所有字符串读取为小写。在写入JTextField时,是否可以将JTextField设置为自动将大写转换为小写? 如果(line.toLowerCase().contains(searchedString))。。。 您可以通过扩展JTextfield和重写构造函数/setter方法来创建自己的类 您可以通
您可以通过扩展JTextfield和重写构造函数/setter方法来创建自己的类 您可以通过扩展JTextfield和重写构造函数/setter方法来创建自己的类 是的,您可以使用KeyListener,当在文本字段中按下一个键时,您将使输入字符串小写,同时保持光标位置不变。如下面的代码所示:
jTextField1.addKeyListener(new KeyListener() {
@Override
public void keyTyped(KeyEvent e) {
}
@Override
public void keyPressed(KeyEvent e) {
}
@Override
public void keyReleased(KeyEvent e) {
int pos = jTextField1.getCaretPosition();
jTextField1.setText(jTextField1.getText().toLowerCase());
jTextField1.setCaretPosition(pos);
}
});
资料来源:
jTextField1.addKeyListener(new KeyListener() {
@Override
public void keyTyped(KeyEvent e) {
}
@Override
public void keyPressed(KeyEvent e) {
}
@Override
public void keyReleased(KeyEvent e) {
int pos = jTextField1.getCaretPosition();
jTextField1.setText(jTextField1.getText().toLowerCase());
jTextField1.setCaretPosition(pos);
}
});
资料来源:
- 在insertString方法中,它将调用它的super,传入一个参数
string.toLowerCase()
- 在replace方法中,它将调用它的super,传入一个参数
text.toLowerCase()
class Main {
public static void main(String[]args) {
JFrame jFrame = new JFrame("Example");
jFrame.setSize(500, 500);
jFrame.setVisible(true);
JPanel jPanel = new JPanel();
jFrame.add(jPanel);
JTextField jTextField = new JTextField("Example JTextField");
((AbstractDocument)jTextField.getDocument()).setDocumentFilter(new LowerCaseDocumentFilter());
jPanel.add(jTextField);
jFrame.pack();
}
}
资料来源:
您可以创建一个扩展类和重写方法的类,以便:
- 在insertString方法中,它将调用它的super,传入一个参数
string.toLowerCase()
- 在replace方法中,它将调用它的super,传入一个参数
text.toLowerCase()
class Main {
public static void main(String[]args) {
JFrame jFrame = new JFrame("Example");
jFrame.setSize(500, 500);
jFrame.setVisible(true);
JPanel jPanel = new JPanel();
jFrame.add(jPanel);
JTextField jTextField = new JTextField("Example JTextField");
((AbstractDocument)jTextField.getDocument()).setDocumentFilter(new LowerCaseDocumentFilter());
jPanel.add(jTextField);
jFrame.pack();
}
}
资料来源:
工作完美!这就是我要找的。谢谢。您可以使用
KeyAdapter
而不是keylister
来节省一些代码。它不提供方法的op版本,因此您只需要实现keyreased
。还要注意,这只适用于键。其他输入方法(如剪切和粘贴)将不会使用小写。工作完美!这就是我要找的。谢谢。您可以使用KeyAdapter
而不是keylister
来节省一些代码。它不提供方法的op版本,因此您只需要实现keyreased
。还要注意,这只适用于键。其他输入方法(如剪切和粘贴)不会使用小写。