Objectif : On compare l'implantation de quelques propriétés, méthodes et événements du composant Swing JTextField et du composant Delphi TEdit.
IntroductionLa programmation des zones de texte selon Delphi et selon Java-Swing est fortement semblable. Ces deux classes autorisent la manipulation de texte en entrée/sortie avec comme les autres composants la variation des spécifications de la police de caractères.
Delphi
Le composant de classe TEdit de delphi permet d'afficher, de saisir, de copier, de coller du texte sur une seule ligne.
Java-Swing
Le composant JTextField permet lui aussi d'afficher, de saisir, de copier, de coller du texte sur une seule ligne.
Nous proposons de signaler ci-dessous les propriété communes au JTextField de java et au TEdit de Delphi.
Propriété TEdit(Delphi) JTextField(Swing) Changer la police, la taille ou le style 'Font'
Edit1.Font.Name:='Serif';
ou Font.Size pour la taille, Font.Style:=fsItalic;'setFont'
jTextField1.setFont(Font.decode("Serif")); ou pour définir la police, le style et la taille:
jTextField1.setFont(new java.awt.Font("Serif",1,14));Le contenu de la zone de texte 'Text' (string)
Edit1.Text:='Toto';'setText'
jTextField1.setText("Toto");Changer la couleur du texte 'Font'
Edit1.font.Color:='clred';'Foreground'
jTextField1.setForeground(Color.red);Limiter la zone en lecture seule 'ReadOnly'
Edit1.ReadOnly := true;'setEditable'
jTextField1.setEditable(true);
Quelques méthodes parmi les plus utiles au départ :
Méthode TEdit(Delphi) JTextField(Swing) Selectionner le contenu de toute la zone 'SelectAll'
Edit1.SelectAll;'SelecteAll'
jTextField1.SelectAll();Effacer le contenu de la zone 'Text': entrer une chaîne vide dans la propriété text :
Edit1.text:=' ';'setText'
jTextField1.setText("");Couper,Copier et Coller 'CutToClipboard'
'CopyToClipboard'
'PasteFromToClipboard''cut()'
'copy()'
'paste()'Sélectionner une partie du texte de la zone 'SelStart' (integer) point de départ
Edit1.SelStart := 10 ;
'SelLength' (integer) nombre de caractères à sélectionner:
Edit1.SelLength := 8 ;'select'.
point de départ et point d'arrivé :
jTextField1.select(10,17) ;
Strictement les mêmes que ceux du JList et du TListBox
Événement TEdit(Delphi) JTextField(Swing) Click dans une zone OnClick:Permet de répondre au clic sur la zone mono-ligne. mouseClicked: se produit lorsque le bouton de la souris est enfoncé et relaché sur le composant.
Entrée dans le champ du composant OnEnter: Se produit lorsque le composant reçoit la focalisation (clavier ou souris). mouseEntered: Ici, l'événement se produit effectivement lorsqu'on vient se positionner sur le composant.(écouteur de classe MouseAdapter). focusGained : cet événement se produit lorsqu'un bouton obtient le focus à partir du clavier (écouteur de classe FocusAdapter).
Sortie du composant OnExit: se produit uniquement quand un autre composant est sélectionné c'est à dire quand le composand perd la focalisation. mouseExited: se produit effectivement dés qu'on sort du champ du composant (écouteur de classe MouseAdapter). focusLost : cet événement se produit lorsque le composant perd le focus à partir du clavier (touche tabulation par exemple) ou de la souris (écouteur de classe FocusAdapter).
Enfoncer une touche OnKeyDown keyPressed Relacher la touche OnKeyUp keyReleased Enfoncer et relacher une touche OnkeyPress keyTyped Enfoncer le bouton de souris sur le composant OnMouseDown: se produit quand le bouton gauche de la souris est enfoncé. mousePressed: strictement équivalent à OnMouseDown de Delphi (écouteur de classe MouseAdapter). Relacher le bouton de souris OnMouseUp: quand le bouton de la souris est relaché. mouseReleased: même chose que OnMouseUp (écouteur de classe MouseAdapter). Déplacer le curseur sur le composant OnMouseMove: se produit quand le curseur vient sur le composant mouseMoved: même chose que OnMouseMove (écouteur de classe MouseAdapter). Pour le JTextField(Swing) actionPerformed: intercepte par défaut l'appui sur la touche [Entrée] . A n'utiliser lorsque l'on veut obtenir par exemple des informations sur la commande d'action associée au JTextField (String située dans la propriété ActionCommand). L'écouteur est de classe ActionListener, il reçoit des événements du type ActionEvent. Attention tous les utilisateurs ne terminent pas leur entrée de texte en appuyant sur la touche [Entrée], ceci induit le fait que votre composant ne détecterait pas la fin de saisie du texte. Dans ce dernier cas une alternative acceptable serait alors de détecter le fait que le composant JTextField a perdu le focus (ce qui voudrait dire que l'utilisateur a fini de taper son texte) en ajoutant un écouteur de classe FocusAdapter...