diff --git a/src/fr/monkhanny/dorfromantik/components/Button.java b/src/fr/monkhanny/dorfromantik/components/Button.java index 75affe7..f2b924a 100644 --- a/src/fr/monkhanny/dorfromantik/components/Button.java +++ b/src/fr/monkhanny/dorfromantik/components/Button.java @@ -5,8 +5,23 @@ import fr.monkhanny.dorfromantik.utils.FontManager; import javax.swing.*; import java.awt.*; +/** + * Classe utilitaire pour créer des boutons personnalisés. + * Cette classe fournit des méthodes statiques permettant de générer des boutons stylisés avec du texte ou des icônes, en respectant une apparence cohérente. + * + * @version 1.0 + * @author Khalid CHENOUNA + **/ + public class Button { + /** + * Crée un bouton personnalisé avec un texte, une taille de police spécifique et un style prédéfini. + * + * @param text le texte à afficher sur le bouton + * @param fontSize la taille de la police à utiliser pour le texte + * @return un objet {@link JButton} stylisé + */ public static JButton createCustomTextButton(String text, float fontSize) { JButton button = new JButton(text); button.setFocusPainted(false); // Retirer le focus @@ -17,8 +32,13 @@ public class Button { return button; } + /** + * Crée un bouton personnalisé contenant une icône, avec un style prédéfini. + * + * @param iconPath le chemin vers l'image de l'icône à afficher sur le bouton + * @return un objet {@link JButton} contenant l'icône spécifiée + */ public static JButton createCustomIconButton(String iconPath) { - // Créer le bouton JButton button = new JButton(); button.setFocusPainted(false); // Retirer le focus @@ -28,21 +48,22 @@ public class Button { // Calculer automatiquement la taille de l'icône pour l'adapter à la taille du bouton int buttonWidth = 100; // Taille du bouton (largeur) int buttonHeight = 100; // Taille du bouton (hauteur) - - // Vous pouvez ajuster ces valeurs ou les calculer dynamiquement en fonction de la taille du bouton + + // Redimensionner l'image de l'icône Image img = icon.getImage(); Image resizedImage = img.getScaledInstance(buttonWidth, buttonHeight, Image.SCALE_SMOOTH); button.setIcon(new ImageIcon(resizedImage)); - - // Optionnel : changer la couleur de fond ou de bordure si nécessaire - button.setBackground(new Color(102, 178, 255)); // Couleur de fond (facultatif) - + + // Couleur de fond (facultatif) + button.setBackground(new Color(102, 178, 255)); + // Retirer la bordure du bouton (facultatif) button.setBorder(BorderFactory.createEmptyBorder()); - // Redimensionner le bouton pour s'adapter à l'icône si nécessaire + // Ajuster la taille du bouton button.setPreferredSize(new Dimension(buttonWidth, buttonHeight)); - + return button; } } + diff --git a/src/fr/monkhanny/dorfromantik/components/Title.java b/src/fr/monkhanny/dorfromantik/components/Title.java index 86908ef..01d2000 100644 --- a/src/fr/monkhanny/dorfromantik/components/Title.java +++ b/src/fr/monkhanny/dorfromantik/components/Title.java @@ -5,23 +5,53 @@ import fr.monkhanny.dorfromantik.utils.FontManager; import javax.swing.*; import java.awt.*; +/** + * Composant personnalisé pour afficher un titre stylisé. + * Cette classe étend {@link JLabel} et permet de créer des titres centrés avec une police et une couleur personnalisées. + * + * @version 1.0 + * @author Khalid CHENOUNA + */ public class Title extends JLabel { + /** + * Crée un titre avec un texte, une taille de police et des styles par défaut. + * Le texte est centré, et la couleur par défaut est blanche. + * + * @param text Texte à afficher dans le titre + * @param fontSize Taille de la police du titre + * @see JLabel + */ public Title(String text, float fontSize) { super(text, SwingConstants.CENTER); - setFont(FontManager.getTitleFont(fontSize)); - setForeground(Color.WHITE); - setBorder(BorderFactory.createEmptyBorder(20, 0, 20, 0)); + setFont(FontManager.getTitleFont(fontSize)); // Appliquer la police + setForeground(Color.WHITE); // Couleur du texte + setBorder(BorderFactory.createEmptyBorder(20, 0, 20, 0)); // Marges } + /** + * Crée un titre avec un texte, une taille de police et une couleur de texte personnalisée. + * Le texte est centré, et la couleur peut être spécifiée. + * + * @param text Texte à afficher dans le titre + * @param fontSize Taille de la police du titre + * @param textColor Couleur du texte + * @see JLabel + */ public Title(String text, float fontSize, Color textColor) { super(text, SwingConstants.CENTER); - setFont(FontManager.getTitleFont(fontSize)); - setForeground(textColor); - setBorder(BorderFactory.createEmptyBorder(20, 0, 20, 0)); + setFont(FontManager.getTitleFont(fontSize)); // Appliquer la police + setForeground(textColor); // Appliquer la couleur personnalisée + setBorder(BorderFactory.createEmptyBorder(20, 0, 20, 0)); // Marges } + /** + * Met à jour la taille de la police du titre. + * Cette méthode permet de changer dynamiquement la taille de la police utilisée. + * + * @param fontSize Nouvelle taille de la police + */ public void updateTitleFont(float fontSize) { - setFont(FontManager.getTitleFont(fontSize)); + setFont(FontManager.getTitleFont(fontSize)); // Mise à jour de la police } }