I have found the problems where they are.
1. wrong display variable
I setup the display variable in /etc/bashrc,
because I must automatically setup the display variable of the user who use telnet.
fix => I found that $REMOTEHOST will not be set as I use ssh to connect linux.
I modify /etc/bashrc as follows:
if [ -n "$REMOTEHOST" ]; then
export DISPLAY=$REMOTEHOST:0.0
fi
2. wrong host name
The ssh client will set the display variable like localhost:x.0.
The host name, localhost, must be 127.0.0.1.
fix => modify /etc/hosts