大家可以运行下,当输满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');
结贴给分吧。