EDITEUR DE TEXTE À LA WORDPAD

Twinuts Messages postés 5375 Date d'inscription dimanche 4 mai 2003 Statut Modérateur Dernière intervention 14 juin 2023 - 4 oct. 2006 à 17:45
cs_zoo21 Messages postés 1 Date d'inscription dimanche 29 novembre 2009 Statut Membre Dernière intervention 1 décembre 2009 - 1 déc. 2009 à 19:25
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.

https://codes-sources.commentcamarche.net/source/39798-editeur-de-texte-a-la-wordpad

cs_zoo21 Messages postés 1 Date d'inscription dimanche 29 novembre 2009 Statut Membre Dernière intervention 1 décembre 2009
1 déc. 2009 à 19:25
Merci boucoup pour ce code , éditeur impeccable
:)
aminemmm Messages postés 2 Date d'inscription dimanche 7 décembre 2008 Statut Membre Dernière intervention 17 septembre 2009
17 sept. 2009 à 05:29
Je donne 10/10 pour un éditeur pareil
Merci frero
cs_DARKSIDIOUS Messages postés 15814 Date d'inscription jeudi 8 août 2002 Statut Membre Dernière intervention 4 mars 2013 130
3 juil. 2008 à 19:18
Bah de rien, il est là pour cà, content de voir que cette source est toujours utile :p
Talstus Messages postés 5 Date d'inscription mardi 1 novembre 2005 Statut Membre Dernière intervention 12 septembre 2008
3 juil. 2008 à 16:45
Ton logiciel fonctionne a merveille, vraiment bravo et merci de le partager comme tu le fait. Ça va beaucoup m'aider.
sheorogath Messages postés 2448 Date d'inscription samedi 21 février 2004 Statut Modérateur Dernière intervention 29 janvier 2010 17
14 janv. 2007 à 14:42
ok je finis mon prog actuelle et je te montre

pour l'enregistrement de rtf j'ai decouver RTFEditorKit je crois...
elle a l'air de bien marcher enfin bon je verrais ^^

je te tien au courant
cs_DARKSIDIOUS Messages postés 15814 Date d'inscription jeudi 8 août 2002 Statut Membre Dernière intervention 4 mars 2013 130
14 janv. 2007 à 09:00
tu as fait ton propre éditeur ?

Car j'ai un bug avec celui-ci pour l'application de style : si l'utilisateur sélectionne le texte de droite à gauche : aucun problème, mais de gauche à droite, là ca marche plus !

La raison ? La position du curseur de sélection : s'il est à gauche du texte sélectionné, alors le caractère après le curseur possède le style de la sélection, par contre, si le curseur est à la fin de la sélection, alors on perd le style courant :(

En ce qui concerne l'enregistrement, il a fallu ruser pour appliquer un style (je ne sais plus lequel, il me semble que c'est la police) : il a fallut que je suive les conseils trouvé sur le forum de sun : il y a un bug dans le sdk de J2SE 5 pour l'enregistrement en RTF. Sinon l'enregistrement se passe bien.

Je serais très intéressé de voir ton code afin de pouvoir comparé les deux méthodes. Il me manque encore pas mal d'expérience en java (comparé à vb) pour faire du code "standard".

DarK Sidious
sheorogath Messages postés 2448 Date d'inscription samedi 21 février 2004 Statut Modérateur Dernière intervention 29 janvier 2010 17
12 janv. 2007 à 20:21
au cas ou ca t'interresserais :

/****************************/
package com.daedric.swing;

import java.awt.Color;

import javax.swing.text.BadLocationException;
import javax.swing.text.Document;
import javax.swing.text.Style;
import javax.swing.text.StyleConstants;
import javax.swing.text.StyleContext;
import javax.swing.text.StyledDocument;

public class DJTextPane extends javax.swing.JTextPane {
private static final long serialVersionUID = -8905324578389242069L;

public transient Style def = StyleContext.getDefaultStyleContext()
.getStyle(StyleContext.DEFAULT_STYLE);

public transient Style style;

public DJTextPane() {
style = addStyle("default", def);
}

public DJTextPane(StyledDocument doc) {
super(doc);
style = addStyle("default", def);
}

public void append(String mess) {
this.appendMess(mess, Color.black);
}

public void appendMess(String s, Color col) {
try {
StyleConstants.setForeground(style, col);
Document doc = getDocument();
doc.insertString(doc.getLength(), s + "\n", getStyle("default"));
setCaretPosition(getDocument().getLength());
} catch (BadLocationException e) {
e.printStackTrace();
}
}

public void setBold(boolean b) {
StyleConstants.setBold(style, b);
this.setCharacterAttributes(style, true);
}

public void setUnderLine(boolean b) {
StyleConstants.setUnderline(style, b);
this.setCharacterAttributes(style, true);
}

public void setSize(int s) {
StyleConstants.setFontSize(style, s);
this.setCharacterAttributes(style, true);
}

public void setStrike(boolean b) {
StyleConstants.setStrikeThrough(style, b);
this.setCharacterAttributes(style, true);
}

public void setItalic(boolean b) {
StyleConstants.setItalic(style, b);
this.setCharacterAttributes(style, true);

}
public boolean isBold() {
return StyleConstants.isBold(style);
}

public boolean isUnderLined() {
return StyleConstants.isUnderline(style);
}

public boolean isStrike() {
return StyleConstants.isStrikeThrough(style);
}
public boolean isItalic() {
return StyleConstants.isItalic(style);
}
}
/**********************************************/
sheorogath Messages postés 2448 Date d'inscription samedi 21 février 2004 Statut Modérateur Dernière intervention 29 janvier 2010 17
12 janv. 2007 à 20:19
je viens de tester ton code pour voir l'enregistrement de fichier (je fais un truc un peu similaire)

on ne procede pas du tout de la meme facon pour l'application de style mais ca ce n'est pas important mais je ne sais pas pourquoi dans ton code j'ai l'impression qu'on ne peu pas annuler la selection du gras de l'italic etc ....

je regarderais un peu plus en detail plus tard :p

sinon j'ai un reproche a faire au niveau c'est : une classe par fichier c'est plus agreable ... ton FrmTextEditor.java fait 31ko ...

voila ^^

sinon pour l'enregistrement je regarderais comment tu t'es occupe du rtf
noctuna Messages postés 1 Date d'inscription lundi 11 décembre 2006 Statut Membre Dernière intervention 22 décembre 2006
22 déc. 2006 à 21:57
salut, si seulement tu pouvais commenter les codes comme ca des débutants comme moi sauront pourquoi tu as écris telle ou telle procédure..
cs_DARKSIDIOUS Messages postés 15814 Date d'inscription jeudi 8 août 2002 Statut Membre Dernière intervention 4 mars 2013 130
29 oct. 2006 à 11:09
Il te faut compiler les fichiers java en fichier .class, et faire un jar du projet afin de pouvoir l'exécuter.
lalacharsi Messages postés 2 Date d'inscription jeudi 29 décembre 2005 Statut Membre Dernière intervention 29 octobre 2006
29 oct. 2006 à 10:41
Bonjour, je voudrais savoir comment le script fonctionnait ?

je dois l'envoyer sur mon site ?

merci de votre aide svp
Twinuts Messages postés 5375 Date d'inscription dimanche 4 mai 2003 Statut Modérateur Dernière intervention 14 juin 2023 111
10 oct. 2006 à 20:58
Salut,

tu as oublié cette poubelle de remote object qu'offre C# (mediocre plagia du remoting en java, à la différence pret c'est qu'en java cela fonctionne).
Heureusement que MS à pensé à la directive unsafe pour que les developpeur puissent enfin s'exprimer. !
sheorogath Messages postés 2448 Date d'inscription samedi 21 février 2004 Statut Modérateur Dernière intervention 29 janvier 2010 17
10 oct. 2006 à 20:25
mdr fan des techno microsoft quand on vois le .NET on se demande pourquoi c'est carrement instable , les api fourni je n'en parle meme pas : directShow ou WIA meme pas pu piloter une camera correctement ....
sans oublier les incoherence syntaxique ... genre les Thread en C# mais mort de rire ...
puis bon en java tu peut dire : j'ai code ca
en .NET tu dit l'ide et moi avons programmé ca

enfin je m'arrete la je n'aime pas ce genre de message inutile ...
il y a une section debat ...

allez va
+
cs_DARKSIDIOUS Messages postés 15814 Date d'inscription jeudi 8 août 2002 Statut Membre Dernière intervention 4 mars 2013 130
10 oct. 2006 à 15:09
Encore une mise à jour (décidément !), mais cette fois sans grand rapport avec un éditeur de texte : il s'agit du menu exporter qui permet d'exporter le texte tapé dans un format balisé directement importable sur la source de tucobouch (http://www.javafr.com/codes/TEXTRENDERER-CLASSE-POUR-RENDU-TEXTE_39208.aspx)

Cela permet par exemple, en modifiant légèrement les balises que j'ai mises, de faire un balisage HTML ou PHPBB du texte saisie par l'utilisateur, et le stocker dans un base de données par exemple (en tout cas, c'est l'utilisation que je vais en faire ;))

DarK Sidious
cs_DARKSIDIOUS Messages postés 15814 Date d'inscription jeudi 8 août 2002 Statut Membre Dernière intervention 4 mars 2013 130
10 oct. 2006 à 13:59
Mouarf romagny, en tant que fan de microsoft, ca se comprends, mais perso, je ne regrête vraiment pas le passage de vb6 à java !!! Pourrais t'on savoir tout de même l'origine de ta haine envers java ? Car ce n'est pas parce que tu aime microsoft que les technologies microsoft sont forcément meilleures...
Twinuts Messages postés 5375 Date d'inscription dimanche 4 mai 2003 Statut Modérateur Dernière intervention 14 juin 2023 111
10 oct. 2006 à 13:22
Rooooo le trolleur
romagny13 Messages postés 687 Date d'inscription lundi 10 janvier 2005 Statut Membre Dernière intervention 27 août 2014 3
10 oct. 2006 à 13:18
Bonjour
je hais java
et qd je vois ce quon obtient avec je suis plié de rire mdrr
dsl
cs_DARKSIDIOUS Messages postés 15814 Date d'inscription jeudi 8 août 2002 Statut Membre Dernière intervention 4 mars 2013 130
8 oct. 2006 à 20:14
Je viens de mettre à jour la source (je pense pour la dernière fois) afin de rajouter la possibilité d'enregistrer/ouvrir un fichier rtf.

DarK Sidious
Twinuts Messages postés 5375 Date d'inscription dimanche 4 mai 2003 Statut Modérateur Dernière intervention 14 juin 2023 111
7 oct. 2006 à 21:15
Salut,

ça le fait comme ça :P
cs_DARKSIDIOUS Messages postés 15814 Date d'inscription jeudi 8 août 2002 Statut Membre Dernière intervention 4 mars 2013 130
7 oct. 2006 à 08:20
Mise à jour de la source afin d'utiliser un jtoolbar, et corriger les quelques petits bugs recensés.
Ajout également de la fonction d'alignement du texte.
Me reste encore un but à corriger : le raffraichissement des boutons d'alignement du texte.

DarK Sidious
kaloway Messages postés 358 Date d'inscription jeudi 24 octobre 2002 Statut Membre Dernière intervention 13 avril 2020
6 oct. 2006 à 13:09
il y a erreur à la ligne if (cmbCombo.getName().compareTo("taille") == 0). ce n'est "taille" mais "Taille" ce qui empeche de modifier la taille du texte.
les mises en forme marchent. par contre pour supprimer les précédentes mises en forme cela est loin d'être évident. à la prochaine mise à jour.
Ombitious_Developper Messages postés 2333 Date d'inscription samedi 28 février 2004 Statut Membre Dernière intervention 26 juillet 2013 38
5 oct. 2006 à 01:35
Salut :

Juste une remarque pourquoi ne pas utiliser un menu en plus de la barre d'outils?
Côté esthétique, je pense que l'utilisation des icônes est plus meilleures que l'utilisation des libellées.

Conclusion : source appréciable
cs_DARKSIDIOUS Messages postés 15814 Date d'inscription jeudi 8 août 2002 Statut Membre Dernière intervention 4 mars 2013 130
4 oct. 2006 à 20:59
lol ;)

Bon c'est vrai que c'était crade, d'habitude je sépare la création des contrôles par groupe (dans des fonctions séparées, comme là), mais pour les listeners, c'est vrai que les séparer eux aussi, c'est plus lisible, mais je trouve ca moins pratique quand même.

DarK Sidious
Twinuts Messages postés 5375 Date d'inscription dimanche 4 mai 2003 Statut Modérateur Dernière intervention 14 juin 2023 111
4 oct. 2006 à 20:31
Salut,

haaaaaaaa on sy retrouve de suite lol :)
cs_DARKSIDIOUS Messages postés 15814 Date d'inscription jeudi 8 août 2002 Statut Membre Dernière intervention 4 mars 2013 130
4 oct. 2006 à 20:24
Bon j'ai pas mal éclairci le code en passant par un classe interne pour la gestion des events, et en séparant la création des contrôles dans des fonctions.

J'en ai profité pour rajouter le Undo/Redo et la gestion du presse papier, ca peut toujours servir aux autres membres.

DarK Sidious
sheorogath Messages postés 2448 Date d'inscription samedi 21 février 2004 Statut Modérateur Dernière intervention 29 janvier 2010 17
4 oct. 2006 à 19:27
question de gout on va dire ;)
Twinuts Messages postés 5375 Date d'inscription dimanche 4 mai 2003 Statut Modérateur Dernière intervention 14 juin 2023 111
4 oct. 2006 à 18:46
Salut,

nan pas forcement 'this' mais je trouve plus lisible de séparer les action de l'initialisation d'un bout :P
Twinuts Messages postés 5375 Date d'inscription dimanche 4 mai 2003 Statut Modérateur Dernière intervention 14 juin 2023 111
4 oct. 2006 à 18:45
Salut,

oki :P

Concernant les listeners il y a mieux quand même genre soit de :
- les regrouper dans une méthode unique gérant tous les listener ce qui simplifie les débugage et la lisibilitée d'un code.
- Passer par des objets Action ce qui facilite la gestion des actions avec un bouton et le clavier exemple : http://java.sun.com/docs/books/tutorial/uiswing/components/generaltext.html

bon après ça n'engage que moi :) et n'enleve en rien la simplicitée de ton code
sheorogath Messages postés 2448 Date d'inscription samedi 21 février 2004 Statut Modérateur Dernière intervention 29 janvier 2010 17
4 oct. 2006 à 18:32
moi aussi lol
lui il prefere les addActionListener(this); lol
cs_DARKSIDIOUS Messages postés 15814 Date d'inscription jeudi 8 août 2002 Statut Membre Dernière intervention 4 mars 2013 130
4 oct. 2006 à 18:05
comme je l'ai dit, il s'agit surtout d'une source qui va me permettre de faire un nouveau CellEditor, du coup, les undo/redo et les couper/coller, j'en ai pas besoin, mais en effet, il serait assez simple de les rajouter dedans.

Concernant la gestion des actions, c'est quoi que tu n'aime pas ? Je gère tout mes listeners comme cà moi...

DarK Sidious
Twinuts Messages postés 5375 Date d'inscription dimanche 4 mai 2003 Statut Modérateur Dernière intervention 14 juin 2023 111
4 oct. 2006 à 17:45
Salut,

c'est vrai que tu as fait au plus simple :P
Pour continuer à faire mon chieur tu as oublié :
le undo et redo qui sont important dans tout éditeurs :P (ref : http://java.sun.com/docs/books/tutorial/uiswing/components/generaltext.html#undo )
le copier/couper/coller qui sont aussi important (ref : http://java.developpez.com/faq/java/?page=systeme#SYSTEME_pressePapier )

par contre concernant le principe de gestion des actions c'est assez crade quand meme :P
Rejoignez-nous