1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170
| public class FenetreExposition extends JFrame implements ActionListener {
/** Titre de la fenêtre */
private final String TITRE = "Musée - Expositions";
/** Repertoire du logo du musée */
private static final String URLLOGO = "logo.jpg";
/** Dimensions de la fenêtre */
private static final int HAUTEURF = 400;
private static final int LARGEURF = 600;
/** Logo du musée */
private ImageIcon logo = new ImageIcon(URLLOGO);
/** Tableau contenant les boutons */
private JButton[] boutons = { new JButton("Ajouter exposition"),
new JButton("Afficher informations"),
new JButton("Afficher expositions"),
new JButton("Afficher expositions"),
new JButton("Accueil") };
/** Liste déroulante pour afficher les expositions */
private JComboBox<String> listeExpos /*= new JComboBox<>()*/;
/** Tableau contenant les libéllés à afficher dans la boîte à liste */
private String[] libelles_expos;
/** Etiquettes pour les champs */
private JLabel[] label = { new JLabel(logo),
new JLabel("Expositions"),
new JLabel("Expositions : "),
new JLabel("Date début : "),
new JLabel("Date Fin : "),
new JLabel("Mots-clés : ") };
/**
* Date de début et date de fin de l'exposition pour la recherche par
* date
*/
private JDateChooser dateDeb = new JDateChooser(),
dateFin = new JDateChooser();
/** Champs contenant les mots-clés pour la recherche par mots-clés */
private JTextField motsCles = new JTextField(50);
/** Tableau contenants tous les composants */
private JComponent[] composants =
{label[0], label[1], boutons[0], label[2], listeExpos, boutons[1],
label[3], dateDeb, label[4], dateFin, boutons[2], label[5],
motsCles, boutons[3], boutons[4]};
/** Abscisse du coin supérieur gauche des composants */
private static final int[] X = {0, 1, 2, 1, 1, 3, 1, 1, 2, 2, 3, 1, 1, 3, 3};
/** Ordonnées du coin supérieur gauche des composants */
private static final int[] Y = {0, 0, 1, 2, 3, 2, 4, 5, 4, 5, 4, 6, 7, 6, 8};
/** Largeur des composants */
private static final int[] LARGEURC = {1, 2, 1, 1, 2, 1, 1, 1, 1, 1, 1,
1, 2, 1, 1};
/** Hauteur des composants */
private static final int[] HAUTEURC = {1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 2,
1, 1, 2, 1};
/** Poids des composants sur l'axe des abscisses */
private static final int[] POIDSX = {0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0};
/** Poids des composants sur l'axe des ordonnées */
private static final int[] POIDSY = {1, 1, 1, 0, 1, 1, 0, 1, 0, 1, 1, 0,
1, 1, 1};
/** Constante de remplissage */
private static final int NONE = GridBagConstraints.NONE;
private static final int HORIZONTAL = GridBagConstraints.HORIZONTAL;
/** Mode de remplissage du composant dans la fenêtre */
private static final int[] REMPLIR =
{NONE, NONE, HORIZONTAL, HORIZONTAL, HORIZONTAL, NONE, NONE, HORIZONTAL,
NONE, HORIZONTAL, NONE, NONE, HORIZONTAL, NONE, NONE };
/** Constantes d'ancrage */
private static final int F_L_START = GridBagConstraints.FIRST_LINE_START;
private static final int CENTER = GridBagConstraints.CENTER;
private static final int F_L_END = GridBagConstraints.FIRST_LINE_END;
/** Points d'ancrages des composants dans la cellule */
private static final int[] ANCRAGE =
{F_L_START, F_L_START, CENTER, F_L_START, F_L_START, CENTER,
F_L_START, F_L_START, F_L_START, F_L_START, CENTER, F_L_START,
F_L_START, CENTER, F_L_END };
/** Marge au-dessus des composants */
private static final int[] MARGEH = {20, 20, 5, 5, 5, 5, 5, 5, 5, 5, 5,
5, 5, 5, 5};
/** Marge à gauche des composants */
private static final int[] MARGEG = {20, 5, 5, 5, 5, 5, 5, 5, 45, 45, 5,
5, 5, 5, 5};
/** Marge en dessous des composants */
private static final int[] MARGEB = {5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
5, 5, 5, 5};
/** Marge à droite des composants */
private static final int[] MARGED = {5, 5, 5, 40, 60, 20, 5, 5, 5, 60, 20,
5, 60, 20, 20};
/**
* Constructeur de la fenêtre
* @param tabExpos un tableau contenant les expositions pour l'affichage
*/
public FenetreExposition(ToutesLesExpositions expos) {
setTitle(TITRE);
setSize(LARGEURF, HAUTEURF);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
getContentPane().setLayout(new GridBagLayout());
/* On initialise la boite à liste avec les expositions de l'application */
initialiseBoite(expos);
System.out.println(listeExpos.getItemCount());
/* Contrainte pour les composants */
GridBagConstraints contrainte = new GridBagConstraints();
/* Ajout des composants */
for(int i = 0; i < composants.length; i++){
// On prépare la contrainte avec les valeurs
contrainte.gridx = X[i]; // Position sur l'axe des abscisses
contrainte.gridy = Y[i]; // Position sur l'axe des ordonnées
contrainte.gridwidth = LARGEURC[i]; // Largeur
contrainte.gridheight = HAUTEURC[i]; // Hauteur
contrainte.weightx = POIDSX[i]; // Poids sur l'axe des abscisses
contrainte.weighty = POIDSY[i]; // Poids sur l'axe des ordonnées
contrainte.fill = REMPLIR[i]; // Remplissage de la zone
contrainte.insets = // Marge autour du composant
new Insets(MARGEH[i], MARGEG[i], MARGEB[i], MARGED[i]);
contrainte.anchor = ANCRAGE[i]; // Point d'ancrage
// On ajoute le composant
getContentPane().add(composants[i], contrainte);
}
/* Modification de la police du titre */
label[1].setFont(new Font("Arial", Font.PLAIN, 36));
setVisible(true);
}
/**
* Initialise la boite à liste avec les titres des expositions
* passés en paramètre
* @param expos la liste des expositions
*/
public void initialiseBoite(ToutesLesExpositions expos) {
libelles_expos = expos.getLibelles();
listeExpos = new JComboBox<>(libelles_expos);
}
@Override
public void actionPerformed(ActionEvent e) {
// TODO Auto-generated method stub
}
} |
Partager