Supprimer les accents d’une phrase avec Java6

Au cours d’un développement, il arrive qu’il soit nécessaire de supprimer les accents d’une chaine de caractère. S’il faut développer soit-même la solution autant dire que la tâche peut se révéler complexe si on souhaite faire les choses bien.

Heureusement Java propose une solution élégante directement disponible dans le JDK depuis la version 6. Il s’agit de la classe java.text.Normalizer.

La classe Normalizer permet de décomposer les caractères composites en caractères unicode. En clair, cela signifie qu’un caractère accentué est divisé en 2 caractères: le 1er non accentué, puis un second correspondant à l’accent. Le caractère: ‘ê’ sera ainsi décomposé comme suit: ‘e’, ‘^’.

Le premier exemple ci-dessous permet de normaliser une chaîne de caractère selon la norme définie à l’adresse suivante: http://www.unicode.org/reports/tr15/tr15-23.html#Decomposition

public static String normalize(String input) {
  return Normalizer.normalize(input, Normalizer.Form.NFD);
}

Le deuxième exemple, ci-dessous, permet de normaliser la chaîne de caractères, puis de supprimer l’ensemble des caractères représentant les accents des caractères décomposés:

public static String stripAccents(String input) {
  return Normalizer.normalize(input, Normalizer.Form.NFD).replaceAll("\\p{InCombiningDiacriticalMarks}+", "");
}

Comment souventen Java, mieux vaut ne pas essayer de refaire la roue, le JDK offre souvent une solution efficace, et de nombreuses librairies permettent souvent de répondre à vos besoins permettant ainsi de se concentrer un peu plus sur l’objectif de votre développement et d’éviter de perdre du temps sur des détails techniques.

SWT, Transparence et autre

Vous êtes un killer en SWT et vous savez faire plein de choses intéressantes ;) mais vous enragez parce que vous ne pouvez pas faire comme Winamp et bien d’autres applications: de la transparence! Ne vous inquiétez pas il y a toujours une solution à aux problèmes (Une vrai solution… pas de la fausse transparence comme vous avez déjà du voir sur le web)

Il faut l’admettre, il manque des choses en SWT qui rongent la vie:
* L’absence de transparence
* La taille de cellule dans les tableaux fixe, ainsi que dans le widget Tree
* Des fonctions de dessin avancé qui ne fonctionnent pas bien et j’en passe

Même si je n’ai pas la solution à tous les problèmes, j’en ai au moins une partielle et efficace pour les deux premiers problèmes.

En ce qui concerne le premier problème: la transparence, un petit coup de JNI règlera le problème.
En ce qui concerne le second, vous avez la possibilité de régler la taille des cellules et même implémenter une fonction paint efficace avec un CellRenderer.

La, vous devez vous dire, c’est bien beau, mais elles sont où les solutions? Ben elles vont venir… Le temps que je fasse un truc présentable, et je mettrais des exemples tout bien détaillés en temps voulu :D Alors un peu de patience et vous aurez les solutions.

De plus le scrolledComposite souffre de quelques problèmes de base, je vous indiquerai prochainement comment vous débrouiller pour contourner les problème de redimensionnement automatique des composants de la partie scrollée.

SWT PLUS, la librairie qu’il vous faut!

Et dire que j’allais oublier de vous en parler! C’est la librairie tendance à avoir en ce moment si vous développez en SWT. Bon faut le dire pour ma part, je préfère avoir la main sur tous les composants customisés que je rajoute dans mes applications SWT, mais cette librairie amène à réfléchir. Un bémol de taille cependant, la librairie est libre à l’utilisation, mais on a pas accès au code source! (flute…)

Je vous invite à essayer la démonstration présente sur le site pour vous faire une idée de vous-même:
* http://www.swtplus.com/index.php

Clients riches et EJB 3

Pour tous ceux qui souhaitent se documenter un peu plus en ce qui concerne les applications basées sur des interfaces riches, je vous conseille d’aller faire un tour sur le site Client Java, il propose régulièrement des infos et des articles liés à ce sujet!

De même si vous vous intéressez aux technologies J2EE, je vous conseille d’aller jeter un coup d’oeil sur le site suivant:
* http://www.jboss.com/docs/trailblazer
* http://docs.jboss.org/ejb3/app-server/tutorial/

Ces deux sites vous permettent de prendre un bon départ concernant les EJB3. Des connaissances d’Hibernate3 vous permettront d’entrer plus vite dans le vif du sujet concernant la partie persistance même si cela n’est pas nécessaire.

De plus je vous conseille d’aller sur le site de SUN télécharger les spécifications EJB 3, elles regorgent d’informations utiles.

Pour ma part, j’ai déjà adopté les EJB3, c’est tellement plus simple à utiliser dans les développement qu’on en deviendrait presque accros!

Créer son player de musique en Java…

Rescemment JLayer est sorti en version 1.0, cette librairie Java permet entre autre de lire des fichiers MP3, il m’est donc venu à l’idée de faire un petit player de musique qui exploite cette librairie et SWT. Ce projet est en téléchargement avec le code source, mais il n’est pas commenté… Le but de ce programme était de tester la librairie, le code est par conséquent le plus basic possible.

Il est facile de rajouter le support OGG puisqu’une librairie destinée à la lecture du format Ogg existe également. (Google).

* Code source
* Projet Eclipse MusicPlayer (Pour tester)