当前位置: 首页 > 知识库问答 >
问题:

Java JTextField在写入时转换为大写/小写

司空凌
2023-03-14

我有关于在JTextField打字的问题。我的程序搜索通过几个csv文件和寻找指定的JTextField字符串。我有添加到readLine函数". toLowerCase"读取所有字符串作为小写。在写入JTextField时,是否可以将JTextField设置为自动将大写转换为小写?

if(line.toLowerCase()。包含(searchedString))


共有3个答案

谢承
2023-03-14

您可以通过扩展JTextfield和重写构造函数/setter方法来创建自己的类。

徐承载
2023-03-14

您可以创建一个扩展DocumentFilter类的类,并覆盖插入字符串和替换方法,以便:

  • 在insertString方法中,它将调用它的super,传入一个参数string。toLowerCase()
import javax.swing.text.AttributeSet;
import javax.swing.text.BadLocationException;
import javax.swing.text.DocumentFilter;


class LowerCaseDocumentFilter extends DocumentFilter {
    @Override
    public void insertString(final FilterBypass fb, final int offset, final String string, final AttributeSet attr) throws BadLocationException {
        super.insertString(fb, offset, string.toLowerCase(), attr);
    }

    @Override
    public void replace(final FilterBypass fb, final int offset, final int length, final String text, final AttributeSet attrs) throws BadLocationException {
        super.replace(fb, offset, length, text.toLowerCase(), attrs);
    }
}

然后添加此类的实例,以便JTextField将自动转换为小写:

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();
    }
}

资料来源:https://stackoverflow.com/a/11573312

姜彬郁
2023-03-14

是的,您可以使用KeyListener,当在textfield中按下一个键时,您将使输入字符串小写,同时保持光标位置不变。如下面的代码所示:

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);
    }
});

资料来源:

  • 值更改监听器到JTextField
  • 在JTextField中查找光标文本位置
 类似资料:
  • 问题内容: 我想将字符串的第一个字符转换为大写,并将其余字符转换为小写。我该怎么做? 例: 问题答案: 尝试以下尺寸: 基本上,它首先处理空字符串和一个字符字符串的特殊情况,否则正确处理一个两字符以上的字符串。而且,正如评论中指出的那样,功能不需要使用一个字符的特殊情况,但我仍然希望明确,特别是如果它导致更少的无用调用(例如子字符串以获取空字符串),小写字母它,然后附加它。

  • 在Java中如何将snake case转换为camel case? 输入:“输入蛇的情况” 输出:"InputInSnakeCase"

  • 本文向大家介绍将MySQL列中每个值的大小写转换为大写,包括了将MySQL列中每个值的大小写转换为大写的使用技巧和注意事项,需要的朋友参考一下 为此,请在MySQL专栏中使用。让我们首先创建一个表- 使用插入命令在表中插入一些记录- 使用select语句显示表中的所有记录- 这将产生以下输出-

  • 本文向大家介绍vim 转换文字大小写,包括了vim 转换文字大小写的使用技巧和注意事项,需要的朋友参考一下 示例 在正常模式下: ~ 反转光标下字符的大小写, gu{motion}将由{motion}, gU{motion} 大写的文本由 {motion} 示例(^标记光标位置): 在可视模式下: ~ 反转所选文本的大小写, u 小写所选文本, U 大写所选文本 示例(^^^标记视觉选择):  

  • Python 中,为了方便对字符串中的字母进行大小写转换,字符串变量提供了 3 种方法,分别是 title()、lower() 和 upper()。 Python title()方法 title() 方法用于将字符串中每个单词的首字母转为大写,其他字母全部转为小写,转换完成后,此方法会返回转换得到的字符串。如果字符串中没有需要被转换的字符,此方法会将字符串原封不动地返回。 title() 方法的语

  • String 类的 toLowerCase() 方法可以将字符串中的所有字符全部转换成小写,而非字母的字符不受影响。语法格式如下: toUpperCase() 则将字符串中的所有字符全部转换成大写,而非字母的字符不受影响。语法格式如下: 例如: 例 1 下面的实例代码演示了如何对字符串应用大写和小写转换。 代码比较简单,运行后的输出结果如下: