您的位置:首页 > 编程语言 > Java开发

Swing中Java如何限定JTextFied的输入长度?

2013-01-30 10:33 190 查看
package er;

import java.awt.BorderLayout;
import java.awt.event.KeyAdapter;
import java.awt.event.KeyEvent;
import javax.swing.JTextField;
import javax.swing.SwingUtilities;
import javax.swing.WindowConstants;

public class TextFieldTest extends javax.swing.JFrame {
private JTextField field;

/** * Auto-generated main method to display this JFrame */
public static void main(String[] args) {
SwingUtilities.invokeLater(new Runnable() {
public void run() {
TextFieldTest inst = new TextFieldTest();
inst.setLocationRelativeTo(null);
inst.setVisible(true);
}
});
}

public TextFieldTest() {
super();
initGUI();
}

private void initGUI() {
try {
setDefaultCloseOperation(WindowConstants.DISPOSE_ON_CLOSE);
{
field = new LimitedTextField();
getContentPane().add(field, BorderLayout.CENTER);
}
pack();
this.setSize(400, 70);
} catch (Exception e) {
e.printStackTrace();
}
}

class LimitedTextField extends JTextField {
private int maxLength = 5;

public void setMaxLength(int maxLength) {
this.maxLength = maxLength;
}

public int getMaxLength() {
return this.maxLength;
}

public LimitedTextField() {
this.addKeyListener(new KeyAdapter() {
public void keyTyped(KeyEvent e) {
int code = e.getKeyChar();
if (code == KeyEvent.VK_BACK_SPACE) {
e.isActionKey();
} else if (getDocument().getLength() >= maxLength) {
e.consume();
}
}
});
}
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: