Création interface graphique avec Swing : les bases


précédentsommaire

10. Conclusion

Voilà, vous avez maintenant réalisé votre première application avec interface graphique en java. Nous arrivons donc à la fin de ce tutoriel, mais avant d'aller plus loin, je vous conseille d'essayer de faire des modifications et améliorations sur ce programme. Ainsi, vous apprendrez de vous-mêmes de nouvelles choses. Pour des infos sur des méthodes des classes que je vous ai présentées, le mieux est toujours d'aller sur la javadoc et si vous avez des problèmes sur certains points, il ne faut pas hésiter, si vos recherches ont été infructueuses, à poser la question sur les forums de developpez.com.

10.1. Remerciements

J'aimerais remercier toute l'équipe java pour ses commentaires sur ce tutoriel, qui n'ont fait qu'en améliorer la qualité.

Je tiens aussi à remercier Gorgonite et RideKick qui ont respectivement corrigé la première et la seconde version de cet article.

10.2. Les sources

Toutes les sources présentées dans ce tutoriel sont disponibles dans le fichier suivant : Sources.zip.

11. Annexes

Cette section contient des codes annexes auxquels se réfère l'article.

11.1. Centrer une JFrame avec plusieurs écrans

Cette classe permet de centrer une JFrame dans un environnement multi-écrans :

 
Sélectionnez
package org.jtheque.utils;
 
import java.awt.DisplayMode;
import java.awt.GraphicsDevice;
import java.awt.GraphicsEnvironment;
import java.awt.Insets;
import java.awt.Toolkit;
 
import javax.swing.JFrame;
 
/**
 * Provide utility methods for Swing Components. 
 * 
 * @author Baptiste Wicht
 */
public final class SwingUtils {
	private static DisplayMode mode;
	private static GraphicsDevice device;
 
	/**
	 * Private constructor, this class isn't instanciable. 
	 *
	 */
	private SwingUtils(){
		super();
	}
 
	/**
	 * Load the display informations for this computer. 
	 *
	 */
	private static void loadDisplayInfos(){
		GraphicsEnvironment gEnv = GraphicsEnvironment.getLocalGraphicsEnvironment();
		device = gEnv.getDefaultScreenDevice();
		mode = device.getDisplayMode();
	}
 
	/**
	 * Return the insets of the screen. 
	 * 
	 * @return The insets
	 */
	private static Insets getInsets(){
		return Toolkit.getDefaultToolkit().getScreenInsets(device.getDefaultConfiguration());
	}
 
	/**
	 * Center a frame on the screen. 
	 * 
	 * @param frame The frame to be centered
	 */
	public static void centerFrame(JFrame frame){
		if(mode == null){
			loadDisplayInfos();
		}
 
		frame.setLocation(	(getWidth() - frame.getWidth()) / 2, 
						 	(getHeight() - frame.getHeight()) / 2);
	}
 
	/**
	 * Return the height of the screen. 
	 * 
	 * @return The height
	 */
	public static int getHeight(){
		if(mode == null){
			loadDisplayInfos();
		}
 
		return mode.getHeight() - getInsets().bottom - getInsets().top;
	}
 
	/**
	 * Return the widht of the screen. 
	 * 
	 * @return The width
	 */
	public static int getWidth(){
		if(mode == null){
			loadDisplayInfos();
		}
 
		return mode.getWidth() - getInsets().left - getInsets().right;
	}
}

Pour l'utiliser il suffit d'utiliser la méthode SwingUtils.centerFrame avec votre JFrame en paramètre après que vous lui ayez donnée une taille.


précédentsommaire

Vous avez aimé ce tutoriel ? Alors partagez-le en cliquant sur les boutons suivants : Viadeo Twitter Facebook Share on Google+   

  

Les sources présentées sur cette page sont libres de droits et vous pouvez les utiliser à votre convenance. Par contre, la page de présentation constitue une œuvre intellectuelle protégée par les droits d'auteur. Copyright © 2009 Baptiste Wicht. Aucune reproduction, même partielle, ne peut être faite de ce site et de l'ensemble de son contenu : textes, documents, images, etc. sans l'autorisation expresse de l'auteur. Sinon vous encourez selon la loi jusqu'à trois ans de prison et jusqu'à 300 000 € de dommages et intérêts.