当前位置: 代码迷 >> J2SE >> JTextField 限制输入字符数后,当输满时则无法修改了解决方案
  详细解决方案

JTextField 限制输入字符数后,当输满时则无法修改了解决方案

热度:564   发布时间:2016-04-24 01:02:28.0
JTextField 限制输入字符数后,当输满时则无法修改了
大家可以运行下,当输满5个字符时,就不能通过鼠标框选后修改了。(不过BackSpace还能用)
不知道有没有高手能解开这个问题。

Java code
public class Test2 extends JFrame {    JPanel pane;    JTextField text;    JLabel str;    public Test2() {        super("字符输入限制");        pane = new JPanel();        getContentPane().add(pane);        text = new JTextField(12);        str = new JLabel("最多可输入   5   个字符:");        text.addKeyListener(new KeyListener() {            public void keyTyped(KeyEvent e) {                if (text.getText().length() > 4 && e.getKeyChar() != '\b')                    e.setKeyChar('\0');            }            public void keyPressed(KeyEvent e) {            }            public void keyReleased(KeyEvent e) {            }        });        pane.add(str);        pane.add(text);    }    public static void main(String[] args) {        SwingConsole.run(new Test2(), 200, 200);    }}


------解决方案--------------------
楼主,可以修改啊!我刚试过了
------解决方案--------------------
楼上的问题很简单,你判断长度的时候,你要先把已选中的部分去掉 text.getSelectionText() 


 if (text.getText().length()-text.getSelectionText().length > 4 && e.getKeyChar() != '\b')
e.setKeyChar('\0');


结贴给分吧。
  相关解决方案