Java 如何限制jFormattedTextField

Java 如何限制jFormattedTextField,java,swing,Java,Swing,我有一个JFormattedTextField用于字段“Name”。 我必须限制该字段仅输入25个字符。 如果输入更多,则必须显示一些消息。。。 对于消息,我可以使用JOptionpane 如何操作?使用击键侦听器是个坏主意,因为即使按下SHIFT、arrows等不可写键,也会触发事件 通过使用一种格式的构造函数,您可以首先确保只显示和输入前25个字符(例如使用a,如中所述)。使用击键侦听器是个坏主意,因为即使按下SHIFT、箭头等不可写键,它也会触发事件 通过使用使用格式的构造函数,您可以首先

我有一个JFormattedTextField用于字段“Name”。 我必须限制该字段仅输入25个字符。 如果输入更多,则必须显示一些消息。。。 对于消息,我可以使用JOptionpane


如何操作?

使用击键侦听器是个坏主意,因为即使按下SHIFT、arrows等不可写键,也会触发事件


通过使用一种格式的构造函数,您可以首先确保只显示和输入前25个字符(例如使用a,如中所述)。

使用击键侦听器是个坏主意,因为即使按下SHIFT、箭头等不可写键,它也会触发事件


通过使用使用格式的构造函数,您可以首先确保只显示和输入前25个字符(例如使用,如中所述)。

我希望这也能起作用

将keylistener添加到相关的文本字段,并在keypressed事件中编写以下代码

JTextField jTextField1=new JTextField();

jTextField1.setText(""); //intially the textfield is empty

void jTextField1_keyPressed(KeyEvent e) {

    int len=jTextField1.getText().length();

    System.out.println("hello1::"+len);

    jTextField1.setEditable(len <= 24);
}
JTextField jTextField1=新的JTextField();
jTextField1.setText(“”)//文本字段最初是空的
无效jtextfield1u按键按下(按键事件e){
int len=jTextField1.getText().length();
System.out.println(“hello1::”+len);

jTextField1.setEditable(len我希望这也能起作用

将keylistener添加到相关的文本字段,并在keypressed事件中编写以下代码

JTextField jTextField1=new JTextField();

jTextField1.setText(""); //intially the textfield is empty

void jTextField1_keyPressed(KeyEvent e) {

    int len=jTextField1.getText().length();

    System.out.println("hello1::"+len);

    jTextField1.setEditable(len <= 24);
}
JTextField jTextField1=新的JTextField();
jTextField1.setText(“”;//文本字段最初为空
无效jtextfield1u按键按下(按键事件e){
int len=jTextField1.getText().length();
System.out.println(“hello1::”+len);

jTextField1.setEditable(len使用JFormattedTextField将不允许您显示带有消息的JOptionPane,因为您在尝试输入额外字符时会听到蜂鸣音。但是,这可能是更常见的方法,而不是每次都显示弹出窗口


但是,如果您真的想要弹出窗口,那么您需要使用DocumentFilter。Swing教程中关于的部分给出了一个示例,说明了如何做您想做的事情。您所需要做的就是替换“嘟嘟声”显示弹出窗口的代码。

使用JFormattedTextField将不允许您显示带有消息的JOptionPane,因为您在尝试输入额外字符时会听到蜂鸣音。但是,这可能是比每次显示弹出窗口更常见的方法


但是,如果您真的想要弹出窗口,那么您需要使用DocumentFilter。Swing教程中关于的部分给出了一个示例,说明了如何做您想做的事情。您所需要做的就是替换“嘟嘟声”代码以显示弹出窗口。

我在错误的轨道上。这是formattet文本字段的工作方式。我在错误的轨道上。这是formattet文本字段的工作方式。这不是一个好方法。用户可以将文本粘贴到可以包含多个字符的文本字段中。此外,一旦文本字段已满,您可以创建该字段不可编辑,如果出现键入错误,用户如何编辑字段以删除字符?这不是一个好方法。用户可以将文本粘贴到包含多个字符的文本字段中。此外,一旦文本字段已满且您使字段不可编辑,用户如何编辑字段以删除字符(如果键入错误)犯了什么错误?