package levy.daniel.application.presentation.desktop.jframe; import java.awt.Color; import java.awt.Dimension; import java.awt.GridBagConstraints; import java.awt.GridBagLayout; import javax.swing.BorderFactory; import javax.swing.JFrame; import javax.swing.JLabel; import javax.swing.JPanel; import javax.swing.SwingConstants; import javax.swing.SwingUtilities; import javax.swing.border.BevelBorder; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; /** * class AfficheurFrame :
* Classe applicative permettant d'instancier et d'afficher une JFrame.
* - Possède une méthode main(...) permettant * de la lancer comme une application Java.
* - Affiche la JFrame dans l'Event Dispatch Thread (EDT).
*
*/ public final class AfficheurFrame { // ************************ATTRIBUTS************************************/ /** * LOG : Log : Logger pour Log4j (utilisant commons-logging). */ @SuppressWarnings("unused") private static final Log LOG = LogFactory.getLog(AfficheurFrame.class); // *************************METHODES************************************/ /** * method CONSTRUCTEUR AfficheurFrame() :
* CONSTRUCTEUR D'ARITE NULLE.
* Constructeur private pour bloquer l'instanciation externe.
*
*/ private AfficheurFrame() { super(); } // Fin de CONSTRUCTEUR D'ARITE NULLE.________________________________ /** * method creerEtAfficherFrame() :
* Instancie, décore et affiche une JFrame.
*
* * @return : JFrame : JFrame affichée.
*/ public static JFrame creerEtAfficherFrame() { /* Instanciation d'une JFrame. */ final JFrame frame = new JFrame(); /* Création d'un JPanel pour décorer la JFrame. */ final JPanel panel = new JPanel(); panel.setLayout(new GridBagLayout()); /* Création d'un JLabel pour égayer le JPanel. */ final JLabel label = new JLabel("CA MARCHE"); label.setHorizontalAlignment(SwingConstants.CENTER); label.setBorder(BorderFactory.createBevelBorder(BevelBorder.LOWERED)); label.setBackground(Color.WHITE); label.setOpaque(true); label.setPreferredSize(new Dimension(100, 40)); label.setMinimumSize(new Dimension(100, 40)); /* Ajout du JLabel au JPanel. */ panel.add(label, new GridBagConstraints()); /* Coloration et dimensionnement du panel. */ panel.setBackground(Color.BLUE); panel.setPreferredSize(new Dimension(150, 100)); panel.setMinimumSize(new Dimension(150, 100)); /* Passe un GridBagLayout au ContentPane de la JFrame . */ frame.getContentPane().setLayout(new GridBagLayout()); /* Ajout du JPanel à la JFrame. */ frame.getContentPane().add(panel, new GridBagConstraints()); /* Ferme l'application lorsque l'on ferme la fenêtre. */ frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); /* Met en place la JFrame. */ frame.pack(); /* Dimensionne la JFrame. */ frame.setSize(200, 150); /* JFrame redimensionnable. */ frame.setResizable(true); /* JFrame centrée au mileu de l'écran. */ frame.setLocationRelativeTo(null); /* Affichage de la JFrame. */ frame.setVisible(true); return frame; } // Fin de creerFrame().______________________________________________ /** * method main() :
* Point d'entrée de l'application.
* Instancie, décore et affiche une JFrame.
* - Ouvre un Thread EDT dédié à l'affichage.
*
* * @param args : String[].
*/ public static void main(final String[] args) { /* Utilise le Event Dispatch Thread (EDT). */ SwingUtilities.invokeLater(new Runnable() { /** * {@inheritDoc} */ @Override public void run() { /* Instancie, crée et affiche la JFrame dans le Thread EDT. */ creerEtAfficherFrame(); } // Fin de Run().____________________________ }); // Fin de new Runnable()._______________________________ } // Fin de main(...)._________________________________________________ } // FIN DE LA CLASSE AfficheurFrame.----------------------------------------