Javadoc components

This commit is contained in:
2024-12-07 18:28:36 +01:00
parent 2b02bef68e
commit bcd6c41b71
2 changed files with 67 additions and 16 deletions

View File

@@ -5,8 +5,23 @@ import fr.monkhanny.dorfromantik.utils.FontManager;
import javax.swing.*; import javax.swing.*;
import java.awt.*; 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 { 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) { public static JButton createCustomTextButton(String text, float fontSize) {
JButton button = new JButton(text); JButton button = new JButton(text);
button.setFocusPainted(false); // Retirer le focus button.setFocusPainted(false); // Retirer le focus
@@ -17,8 +32,13 @@ public class Button {
return 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) { public static JButton createCustomIconButton(String iconPath) {
// Créer le bouton
JButton button = new JButton(); JButton button = new JButton();
button.setFocusPainted(false); // Retirer le focus button.setFocusPainted(false); // Retirer le focus
@@ -29,20 +49,21 @@ public class Button {
int buttonWidth = 100; // Taille du bouton (largeur) int buttonWidth = 100; // Taille du bouton (largeur)
int buttonHeight = 100; // Taille du bouton (hauteur) 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 img = icon.getImage();
Image resizedImage = img.getScaledInstance(buttonWidth, buttonHeight, Image.SCALE_SMOOTH); Image resizedImage = img.getScaledInstance(buttonWidth, buttonHeight, Image.SCALE_SMOOTH);
button.setIcon(new ImageIcon(resizedImage)); button.setIcon(new ImageIcon(resizedImage));
// Optionnel : changer la couleur de fond ou de bordure si nécessaire // Couleur de fond (facultatif)
button.setBackground(new Color(102, 178, 255)); // Couleur de fond (facultatif) button.setBackground(new Color(102, 178, 255));
// Retirer la bordure du bouton (facultatif) // Retirer la bordure du bouton (facultatif)
button.setBorder(BorderFactory.createEmptyBorder()); 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)); button.setPreferredSize(new Dimension(buttonWidth, buttonHeight));
return button; return button;
} }
} }

View File

@@ -5,23 +5,53 @@ import fr.monkhanny.dorfromantik.utils.FontManager;
import javax.swing.*; import javax.swing.*;
import java.awt.*; 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 { 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) { public Title(String text, float fontSize) {
super(text, SwingConstants.CENTER); super(text, SwingConstants.CENTER);
setFont(FontManager.getTitleFont(fontSize)); setFont(FontManager.getTitleFont(fontSize)); // Appliquer la police
setForeground(Color.WHITE); setForeground(Color.WHITE); // Couleur du texte
setBorder(BorderFactory.createEmptyBorder(20, 0, 20, 0)); 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) { public Title(String text, float fontSize, Color textColor) {
super(text, SwingConstants.CENTER); super(text, SwingConstants.CENTER);
setFont(FontManager.getTitleFont(fontSize)); setFont(FontManager.getTitleFont(fontSize)); // Appliquer la police
setForeground(textColor); setForeground(textColor); // Appliquer la couleur personnalisée
setBorder(BorderFactory.createEmptyBorder(20, 0, 20, 0)); 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) { public void updateTitleFont(float fontSize) {
setFont(FontManager.getTitleFont(fontSize)); setFont(FontManager.getTitleFont(fontSize)); // Mise à jour de la police
} }
} }