Archive

Archives pour la catégorie ‘Java’

Une très petite application

11/11/2008
Commentaires fermés

Après avoir écris un petit post sur comment télécharger un album picasaweb … quelques mois ont passés et iPhoto (sur mac) à été mis à jours et permet d’orénavant de s’abonner à un flux RSS.

Pour les Windowsiens je conseille très vivement Picasa 2.

Malheureusement, certaine personnes, comme ma belle grand mère n’a pas une version récente de Mac et n’a pas pu privilégier des mises à jour d’iPhoto.

J’ai donc pris un peu de temps pour développer une très petite application (Picasaweb Album Downloader) permettant de télécharger l’ensemble d’un album picasaweb.

Cette petite application est dévelopée en Java, elle peut donc être utilisée aussi bien sur windows que sur Mac.

Je serais heureux que vous me laissiez un petit commentaire pour me dire que vous l’utilisez et si vous en êtes satisfait.

Java, Mac , , , , , , , ,

Sexy Swing Apps on Mac OS X

08/10/2008
Commentaires fermés

ExplodingPixels est un excellent blog sur lequel je suis tombé, je vous le conseille vivement. Ken Orr parle d’interfaces graphique, et plus particulièrement des applications Swing sous Mac OS X.

Il y détaille avec justesse et de maniére explicite les problématiques de design que l’on peu rencontrer lors du développement d’application Swing.

Java, Mac , , ,

JFileSynchronizer promu par SoftPedia

25/09/2008
Commentaires fermés

Suite au déploiement de JFileSynchrionizer sur Google Code j’ai fait quelques mise à jours et mis à disposition le Java Web Start permettant d’exécuter l’application.

J’ai eu une belle surprise ce matin en lisant mes mails: Softpedia a sélectionné JFileSynchronizer et le référence dans leur base de données de logiciels.

JFileSynchronizer est nominé d’un award 100% free !

Java, Mac, Projets , , , , , , , ,

Divers liens concernant struts2

22/05/2008
Commentaires fermés

Comment initier un projet struts2 en 5 minutes avec Maven2

04/03/2008
Commentaires fermés

Tout d’abord il faut télécharger Maven2, rajouter le repertoire bin à votre PATH puis ouvrir une ligne de commande et y taper :

mvn archetype:create -DgroupId=com.test.struts2 -DartifactId=Struts2Test -DarchetypeGroupId=org.apache.struts -DarchetypeArtifactId=struts2-archetype-starter -DarchetypeVersion=2.0.9-SNAPSHOT -DremoteRepositories=http://people.apache.org/maven-snapshot-repository


Puis en tapant les lignes de commandes suivante vous démarer l’application sur le port 8888

cd Struts2Test
mvn -Djetty.port=8888 jetty:run



Il n’y a plus qu’à aller jeter un oeil sur notre Hello World à l’adresse: http://localhost:8888/Struts2Test

Et le tour est joué !!

Vous pourrez jeter un oeil sur le code de cette application, vous y trouverez entre autre l’utilisation de sitemesh qui est un framework de gestion de layout. Loïc Mathieu a réaliser une introduction sur le sujet sur developper.com pour ceux qui veulent en savoir plus.

Java , ,

Inclure un browser HTML dans ses applications …

27/02/2008
Commentaires fermés

C’est possible avec Flying Saucer:

Flying Saucer & Mozilla Rhino

Flying Saucer is 100% Java XHTML+CSS renderer, including support for table pagination, margin boxes, running elements, named pages, and more. It is CSS 2.1 compliant (currently working on CSS 3 compliance), can be embedded into your Swing applications, and uses the open source LGPL license. This is a very impressive library! Equally impressive is Mozilla Rhino. Rhino is an open-source implementation of JavaScript written entirely in Java. It is typically embedded into Java applications to provide scripting to end users. Imagine combining Flying Saucer, Applets/JavaFX Script support, Rhino, and the hugely improved « Consumer JRE »!

Java , ,

Astuce Eclipse

22/02/2008
Commentaires fermés

Quand Cyril s’ennui … il nous envoie des mails intéressant :

Allez, une petite astuce Eclipse avant de partir en weekend.

Lorsque vous faites CRTL+O pour ajouter automatiquement les imports, ya toujours les List, Set, Map, Iterator and co. qui n’en font qu’à leur tête et qui vous poppent une boite vous demandant de choisir entre 3 ou 4 differents packages (par exemple List existe dans java.utils et dans java.awt).
Eclipse propose un paramétrage pour virer certains packages des listes de packages proposés. Vous restera donc plus qu’un seul type List dispo, et importer des collections devient alors transparent.

Eclipse > Window > Preferences > Java > Apparence > Type Filters
ajouter les packages (Add Package) :

  • java.awt
  • com.sun.tools.javac.v8.util
  • org.hibernate.mapping
  • org.hsqldb.lib

Comme indiqué en haut de cette page de settings : tous les types (classes & interfaces) dans les packages listés n’apparaitront pas dans la boite Open Type (CTRL+SHIFT+T), les content assist (CTRL+SPACE) et les quickfix (CTRL+SHIFT+&) et cela inclus le « organize imports ».

Seul hic : la setting se fait au niveau WORKSPACE. on ne peut pas le limiter au projet et encore moins à une couche (si vous faites une application AWT et que vous pouvez pas cacher java.awt, ou si vous développez des modules hibernates et que vous pouvez pas cacher org.hib…mapping, ben tant pis pour vous :( ).

Cyril

Quelques raccourcis super utiles :

CTRL+1 (en fait faut taper CTRL+SHIFT+& car en azerty le 1 est sur le shift du &, et je crois me souvenir que ca ne marche pas avec le 1 du keypad)
lorsqu’une ligne est en erreur, ou en warning, on obtient la petite popup qu’on a normalement en cliquant sur l’icone erreur dans la vertical rule (marge gauche). C’est la boite qu’ils appellent QuickFix.
Notamment utile pour ajouter les cast manquant, changer un nom de méthode appelée, la signature de la méthode appelée, changer un void en return, etc.
Mais cette boite peut être appelée meme si ya pas d’erreur, et selon le contexte on a accès à plein de trucs sympas :
(en rouge où il faut placer le curseur avant d’appeler quickfix)
– renommer une variable, ou méthode dans le fichier (comme ALT+SHIFT+R mais que sur le fichier)

– séparer en deux lignes une déclaration de variable de son initialisation
String s = « ceci »;

– inverser le if et le else
if ( false ) {
// one
} else {
// two
}
ca donne if true two else one.

– inverser membres de conditions
if ( this || that) { => if (that || this) {

– inverser une variable booleenne
boolean notThere = i > 0 || that;
=>
boolean there = i <= 0 && !that; ca marche aussi sur les conditions de if / while / etc. - affecter un appel de méthode à une variable getConversionTable(); => ConversionTableVO conversionTable = getConversionTable();

– oter des parenthèses inutiles
if ( (i > 0) && (i <>
if ( i > 0 && …
yen a bien des dizaines. des fois c’est un peu « touchy » faut trouver où il faut mettre le curseur pour que ca apparaisse, mais c’est extrement efficace.

ATL+SHIFT+S :
Accès au menu « Source » qu’on a normalement sur le clic droit.
Notamment :
ATL+SHIFT+S, puis R, ca vous « Generate Getters & Setters ».
ATL+SHIFT+S, puis V, ca vous « Override/Implements Methods ».

ATL+SHIFT+T :
Accès au menu « Refactoring » :
Notamment :
ALT+SHIFT+T, P, ca vous « Introduce Parameter » (en sélectionnant une expression, vous faites en sorte d’ajouter un parametre qui remplace cette expression, et tous les appelant passe l’expression en parametre)

Regardez les raccourcis de ces deux menus, il y a des trucs qu’on utile très souvent :

ALT+SHIFT+I : INLINE. Sélectionnez une variable ou méthode, ca vous met la valeur de la variable, ou le code de la méthode à la place de là où vous avez sélectionné (ya une popup avec une option de remplacer toutes les occurences et supprimer les déclarations devenues inutiles)

ALT+SHIFT+L : EXTRACT LOCAL VARIABLE. Sélectionnez une expression, ca vous crée une variable du bon type initialisée avec l’expression. Ca regarde aussi tous les autres endroits de la méthode où l’expression est utilisée et ca remplace par la variable nouvellement créée.

ALT+SHIFT+M : EXTRACT METHOD. Sélectionnez une expression ou un bout de code, ca va créer une méthode contenant le sélectionner. Il va essayer de détecter les paramètre que le bout de code sélectionné devra recevoir, et le retour qu’on attend. Ca marche plutot très bien. Surtout si les bouts de code sont assez petits (une boucle, le contenu d’un if, le contenu d’une condition d’un if)

ALT+SHIFT+C : CHANGE METHOD SIGNATURE. Selectionner un appel de méthode ou sa déclaration, ca ouvre une boite de dialogue ou on peut réorgniser les paramétres, ajouter des parametres, etc. tous les codes appelant seront mis à jour. Si un paramètre est ajouté, on vous demande de passer la valeur par défaut, c’est la valeur que les appelants passeront (on peut mettre XXX si on veut provoquer des erreurs pour aller voir par soit même ce qu’il faut exactement mettre).

CTRL+SHIFT+G ou CTRL+ALT+H : Trouve partout où une méthode est référencée. Le premier c’est comme de faire clic droit > Références, le second c’est la Call Hierarchy.

Et sinon, plus classique mais ultra efficace :

CTRL+O : la outline en popup dans un fichier, tapez le nom d’un champ/méthode et ca restreint la vue, les wildcard sont autorisés.

CTRL+T : popup représentant la Type Hierarchy. A utiliser notamment sur un appel à une interface, si vous voulez aller dans l’implémentation de la méthode. Si vous faites CTRL+Clic, vous vous trouvez dans le fichier interface, et vous etes pas bien avancés. Avec CTRL+T, il va lister l’interface et toutes ses implentation, choisissez votre implementation, hop vous etes sur le code qui vous interesse.

CTRL+SHIFT+W : fermer tous les fichiers ouverts dans l’editeur. ( »ya trop de fichiers je sais plus ou j’en suis ! je ferme tout »).

CTRL+E : une popup listant tous les fichiers ouverts, on peut taper le nom d’un fichier, avec ou sans wildcard, ca restreint la liste. Très sympa quand on commence a avoir trop de trucs ouverts.

Y’en a probablement plein d’autres, mais c’est probablement ceux que j’utilise le plus.

Cyril

Java ,

Java/SWING

30/01/2008
Commentaires fermés

J’ai réalisé quelques classes java pour embellir mes interfaces SWING.

Voici dans un premier temps la classe ShadowBorder qui permet d’ajouter une ombre aux panels.

Voici également la classe JMemoryMonitor qui est un moniteur de mémoire à la windows. Bien évidement elle ne monitore que la mémoire allouée à java.

JTaskPane quand à elle est un panel à la windows XP explorer qui s’ouvre et se ferme.

JForm est orientée formulaire elle permet d’avoir des labels et champs de même taille. Elle gère des lignes dans lesquels on peut mettre jusqu’à trois éléments (simple ou complexe).

Voici la demo en Java Web Start de tous ces composants.

Java, Projets , , ,

Logiciel de synchronisation de fichiers

30/01/2008
Commentaires fermés

Depuis déjà quelque temps je pensais me mettre à developper un logiciel de sauvegarde / synchronisation de fichiers. Après avoir cherché une fois de plus sur le web je n’ai rien trouvé qui me convenait.

J’ai donc commencé le développement de FileSynchronizer.

Une premiére version est téléchargeable ici. L’application nécessite Java 1.5 minimum.

N’hésitez pas à laisser un commentaire pour me donner votre retour sur cet outil.

Java, Projets , , , , , , ,

FAQ Struts2

25/01/2008
Commentaires fermés

Developpez.com à initié une FAQ communautaire de struts 2

Java ,