以下代码中,‘\b’‘\0’不是很明白意思。\b的意思好像是词边界,那么\0是什么意思呢?在character中我没找到,而且将代码中判断是否 ‘\b’的语句删掉,也不影响效果,那么这个加了‘\b’有什么用呢?
mport java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class Test extends JFrame {
JPanel pane;
JTextField text;
JLabel str;
public Test() {
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')
// if (text.getText().length() > 4) //代码这样其效果一样
e.setKeyChar('\0');
}
public void keyPressed(KeyEvent e) {}
public void keyReleased(KeyEvent e) {}
});
pane.add(str);
pane.add(text);
this.setDefaultCloseOperation(EXIT_ON_CLOSE);
this.setSize(200, 200);
this.setVisible(true);
}
public static void main(String[] args) {
new Test();
}
}
mport java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class Test extends JFrame {
JPanel pane;
JTextField text;
JLabel str;
public Test() {
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')
// if (text.getText().length() > 4) //代码这样其效果一样
e.setKeyChar('\0');
}
public void keyPressed(KeyEvent e) {}
public void keyReleased(KeyEvent e) {}
});
pane.add(str);
pane.add(text);
this.setDefaultCloseOperation(EXIT_ON_CLOSE);
this.setSize(200, 200);
this.setVisible(true);
}
public static void main(String[] args) {
new Test();
}
}
\0就是对应unicod为0的那个字符.
\o是按8进制输出
好像是这样的
注意有一个空格。