2015-09-29 2 views
0

J'utilise JTextPane comme JTextField d'utiliser Html pour styling..but Je ne peux pas mettre en œuvre functionality..here texte rapide est mon code ...Texte de l'invite avec JTextPane

JTextPane txtNm = new JTextPane(); 
    txtNm.setContentType("text/html"); 
    txtNm.addFocusListener(new FocusAdapter() { 
     @Override 
     public void focusGained(FocusEvent arg0) { 
      if(txtNm.getText().equals("<html><font face='Tw Cen MT' size='4' color='GRAY'>&nbsp;NAME</font><font color='red'>&nbsp;*</font></html>")){ 
       txtNm.setText(""); 
       //System.out.println("in txtnmfocus"); 
       txtNm.setForeground(Color.decode("#003366")); 
      } 
     } 
     @Override 
     public void focusLost(FocusEvent e) { 
      if(txtNm.getText().isEmpty()){ 
       txtNm.setText("<html><font face='Tw Cen MT' size='4' color='GRAY'>&nbsp;NAME</font><font color='red'>&nbsp;*</font></html>"); 
      } 
     } 
    }); 
+0

Qu'est-ce que la ** fonctionnalité de texte rapide **? – StanislavL

+0

Même ici. Qu'est-ce que vous essayez de faire et qu'est-ce qui ne va pas? – Sharcoux

+0

J'essaye de faire quelque chose comme ça, quand le textfld obtient le focus alors il sera vide et quand il a perdu le focus alors il établira le texte précédent .... –

Répondre

0
txtNm.getText().isEmpty() 

Est jamais vide. Pour HTMLEditorKit, il renvoie au moins <html><body></body></html> et n'est donc jamais vide.

Vérifiez ce qui est réellement retourné dans les deux cas. Vous pouvez essayer d'analyser txtNm.getDocument().getLength() en vérifiant s'il est vide ou non

0

Le texte renvoyé par getText() doit être traité avec un analyseur HTML tel que Jsoup. En effet, ...

"<html><body></body></html>" 

... et ...

"<html> 
    <body> 
    </body> 
</html>" 

... par exemple, correspondent à la fois à ce que vous appelez une "chaîne vide". Cependant, les chaînes ne sont pas égales les unes aux autres.