N'ayant pas trouvé de source similaire, j'ai dû développer ce petit éditeur de texte assez basique, mais qui va me permettre de faire un nouveau CellEditor pour ma future JPropertyTable.
Il s'agit d'un petit éditeur de texte "à la wordpad", c'est-à-dire que vous avez une barre d'outils pour modifier la présentation du texte du JTextPane. Possibilité d'annuler/rétablir les saisie et modifications de la mise en page, et gestion du presse papier.
Gestion de l'enregistrement dans un fichier rtf.
Rien de bien compliqué, mais je pense que ca peux aider certains membres qui voudraient avoir une petite fenêtre d'édition de texte toute simple où l'utilisateur pourrait modifier la mise en forme du texte.
De plus, ca peux montrer comment se servir des fonts.
Enfin, cette source contient un petit menu "exporter" afin de montrer un exemple d'utilisation de mon autre source qui fait un balisage d'un texte.
Note : l'utilisation des styles Underline et Strikethrough, style qui ne sont pas utilisable à ma connaissance à l'aide de l'objet Font !
Source / Exemple :
// Voici la fonction la plus intéressante de cette source qui permet de définir le style du texte sélectionné dans le JTextPane passé en paramètre selon les params passés :
public static void setJTextPaneFont(JTextPane jtp, boolean bAllText, String sFontName, Boolean bBold, Boolean bItalic, Boolean bUnderline, Boolean bStrikeThrough, Integer iSize, Color oColor) {
MutableAttributeSet attrs = jtp.getInputAttributes();
// on applique les différents styles
if (sFontName != null) {
StyleConstants.setFontFamily(attrs, sFontName);
}
if (bBold != null) {
StyleConstants.setBold(attrs, bBold);
}
if (bItalic != null) {
StyleConstants.setItalic(attrs, bItalic);
}
if (iSize != null) {
StyleConstants.setFontSize(attrs, iSize);
}
if (oColor != null) {
StyleConstants.setForeground(attrs, oColor);
}
if (bUnderline != null) {
StyleConstants.setUnderline(attrs, bUnderline);
}
if (bStrikeThrough != null) {
StyleConstants.setStrikeThrough(attrs, bStrikeThrough);
}
StyledDocument doc = jtp.getStyledDocument();
if (!bAllText) {
// on modifie uniquement le texte sélectionné
int iStart = jtp.getSelectionStart();
doc.setCharacterAttributes(iStart, jtp.getSelectionEnd() - iStart, attrs, false);
}
else {
// on modifie le style du jtext lui même
jtp.setCharacterAttributes(attrs, false);
}
}
Vous n'êtes pas encore membre ?
inscrivez-vous, c'est gratuit et ça prend moins d'une minute !
Les membres obtiennent plus de réponses que les utilisateurs anonymes.
Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.
Le fait d'être membre vous permet d'avoir des options supplémentaires.