gpt4 book ai didi

java - 同时设置 jtextfield 文本限制和大写

转载 作者:行者123 更新时间:2023-11-29 05:46:39 24 4
gpt4 key购买 nike

我的应用程序中有几个 jtextfield,我想放置其中一个允许大写和小写,并且还限制可以引入 jtextfield 的字符数。我必须分开类别,一个放限制,另一个放大写或小写。

限制jtextfield的代码:

package tester;

import javax.swing.text.AttributeSet;
import javax.swing.text.BadLocationException;
import javax.swing.text.PlainDocument;

public class TextLimiter extends PlainDocument {

private Integer limit;

public TextLimiter(Integer limit) {
super();
this.limit = limit;
}

public void insertString(int offs, String str, AttributeSet a) throws BadLocationException {
if (str == null) {
return;
}
if (limit == null || limit < 1 || ((getLength() + str.length()) <= limit)) {
super.insertString(offs, str, a);
} else if ((getLength() + str.length()) > limit) {
String insertsub = str.substring(0, (limit - getLength()));
super.insertString(offs, insertsub, a);
}
}
}

这里是设置大写或反之的代码:

package classes;

import javax.swing.text.AttributeSet;
import javax.swing.text.BadLocationException;
import javax.swing.text.DocumentFilter;

public class upperCASEJTEXTFIELD extends DocumentFilter {

@Override
public void insertString(DocumentFilter.FilterBypass fb, int offset, String text,
AttributeSet attr) throws BadLocationException {
fb.insertString(offset, text.toUpperCase(), attr);
}

@Override
public void replace(DocumentFilter.FilterBypass fb, int offset, int length, String text,
AttributeSet attrs) throws BadLocationException {

fb.replace(offset, length, text.toUpperCase(), attrs);
}
}

继续我的问题,我想设置一个 jtextfield limit = 11 和大写。

最佳答案

PlainDocument doc = new TextLimiter();
doc.setDocumentFiletr(new upperCASEJTEXTFIELD());
JTextField textField = new JTextField();
textField.setDocument(doc);

关于java - 同时设置 jtextfield 文本限制和大写,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15641833/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com