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 171 172 173 174
| public class Banque extends JFrame {
private JPanel contentPane;
private final Action action = new SwingAction(); // C'est en lien avec le bouton retour
private JTable table;
private JScrollPane scroll;
private DefaultTableModel model;
public static void main(String[] args) {
EventQueue.invokeLater(new Runnable() {
public void run() {
Banque frame4 = new Banque();
frame4.setVisible(true);
}
});
}
public Banque() {
contentPane = new JPanel();
contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));
contentPane.setLayout(null);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setBounds(100, 100, 575, 700);
setContentPane(contentPane);
// Déclaration des images
ImageIcon icon= new ImageIcon("C:/Users/Lucas/Documents/Cours/BrainyDress/src/images/Chemise-Marron-Bureau-Carreaux.jpg");
ImageIcon icon2= new ImageIcon("C:/Users/Lucas/Documents/Cours/BrainyDress/src/images/Chemise-Blanche-Classe-Simple.jpg");
ImageIcon icon3= new ImageIcon("C:/Users/Lucas/Documents/Cours/BrainyDress/src/images/Chemise-Gris-Détendu-Carreaux.jpg");
ImageIcon icon4= new ImageIcon("C:/Users/Lucas/Documents/Cours/BrainyDress/src/images/T-Shirt-Rouge-Sport-Imprimé1.jpg");
ImageIcon icon5= new ImageIcon("C:/Users/Lucas/Documents/Cours/BrainyDress/src/images/Chemise-Bleu-Bureau-Simple.jpg");
ImageIcon icon6= new ImageIcon("C:/Users/Lucas/Documents/Cours/BrainyDress/src/images/Chemise-Noire-Classe-Simple.jpg");
ImageIcon icon7= new ImageIcon("C:/Users/Lucas/Documents/Cours/BrainyDress/src/images/Pantalon-Noir-Sport-Simple.jpg");
ImageIcon icon8= new ImageIcon("C:/Users/Lucas/Documents/Cours/BrainyDress/src/images/Veste-Bleu-Bureau-Simple.jpg");
ImageIcon icon9= new ImageIcon("C:/Users/Lucas/Documents/Cours/BrainyDress/src/images/Pantalon-Beige-Bureau-Simple.jpg");
ImageIcon icon10= new ImageIcon("C:/Users/Lucas/Documents/Cours/BrainyDress/src/images/Pantalon-Noir-Classe-Simple.jpg");
ImageIcon icon11= new ImageIcon("C:/Users/Lucas/Documents/Cours/BrainyDress/src/images/Veste-Noir-Classe-Simple.jpg");
ImageIcon icon12= new ImageIcon("C:/Users/Lucas/Documents/Cours/BrainyDress/src/images/Veste-Noir-Sport-Simple.jpg");
ImageIcon icon13= new ImageIcon("C:/Users/Lucas/Documents/Cours/BrainyDress/src/images/Pantalon-Bleu-Détendu-Simple.jpg");
ImageIcon icon14= new ImageIcon("C:/Users/Lucas/Documents/Cours/BrainyDress/src/images/Pull-Gris-Détendu-Imprimé.jpg");
// Déclaration du tableau
int num=0;
Object[] [] data= new Object[][] {
{num=num+1, "Habit 1", icon, "Marron", "Bureau", "Carreaux"}, // Chemise Bureau X
{num=num+1, "Habit 2", icon2, "Blanc", "Classe", "Simple"}, // Chemise Classe X
{num=num+1, "Habit 3", icon3, "Marron", "Détendu", "Carreaux"}, // Chemise Détendu
{num=num+1, "Habit 4", icon4, "Rouge", "Sport", "Imprimé"}, // T-Shirt Sport X
{num=num+1, "Habit 5", icon5, "Bleu", "Bureau", "Simple"}, // Chemise Bureau X
{num=num+1, "Habit 6", icon6, "Noir", "Classe", "Simple"}, // Chemise Classe X
{num=num+1, "Habit 7", icon7, "Noir", "Sport", "Simple"}, // Short Sport X
{num=num+1, "Habit 8", icon8, "Bleu", "Bureau", "Simple"}, // Veste Bureau X
{num=num+1, "Habit 9", icon9, "Beige", "Bureau", "Simple"}, // Pantalon Bureau X
{num=num+1, "Habit 10", icon10, "Noir", "Classe", "Simple"}, // Pantalon Classe X
{num=num+1, "Habit 11", icon11, "Noir", "Classe", "Simple"}, // Veste Classe X
{num=num+1, "Habit 12", icon12, "Noir", "Sport", "Simple"}, // Veste Sport X
{num=num+1, "Habit 13", icon13, "Bleu", "Détendu", "Simple"}, // Pantalon Détendu X
{num=num+1, "Habit 14", icon14, "Gris", "Détendu", "Imprimé"}, // Pull Détendu X
};
String[] title= new String[] {"N° Ligne","Nom habit", "Image", "Couleur", "Style vestimentaire", "Motif"};
final DefaultTableModel model= new DefaultTableModel (data, title);
table= new JTable (model);
table.getColumn("Image").setCellRenderer(new IconRenderer ());
table.setRowHeight (100);
scroll= new JScrollPane(table);
scroll.setBounds(15, 110, 530, 400);
getContentPane().add(scroll);
this.getContentPane().add(scroll);
// J'aimerais bien centrer le contenu de ma cellule, je sais qu'il faut utiliser
// un .setCellRenderer mais je ne se sais pas m'en servir.
table.getColumn("Nom habit").setCellRenderer(new CenterTableRenderer());
//en fait, le contenu de la cellule du JTable est un JLabel, et la classe CellRenderer
//permet de gérer le rendu des cellules de la JTable
//donc pour centrer le contenu d'une cellule, il suffit de définir un CellRenderer dans
//lequel du centre le contenu du JLabel et ensuite tu l'appliques sur la colonne de ton choix
//Création du bouton retour
JButton retour = new JButton("Retour");
retour.setAction(action);
retour.setFont(new Font("Arial Rounded MT Bold", Font.PLAIN, 12));
retour.setBounds(0, 0, 104, 34);
contentPane.add(retour);
// Fonction ajouter un vêtement
JButton Ajouter = new JButton("Ajouter un vêtement");
Ajouter.setBounds(50, 600, 200, 50);
Ajouter.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent arg0) {
// Je voudrais lorsque l'utilisateur appuie sur "Ajouter un vêtement"
// Une nouvelle ligne s'affiche et l'utilisateur rempli les cases N° Habit, Couleur, Style Vestimentaire ... etc
// En cliquant sur la case et en tapant sur le clavier.
Object[] rowData= new Object[6];
model.addRow(rowData);
//normalement ça ira comme ça, il suffit de double cliquer sur la cellule pour la rendre éditable
//tu clique ensuite sur entrée pour valider
}
});
contentPane.add(Ajouter);
// Fonction Supprimer un vêtement
JButton Supprimer = new JButton("Supprimer un vêtement");
Supprimer.setBounds(310, 600, 200, 50);
Supprimer.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
model.removeRow(table.getSelectedRow());
//arrangé. il suffit a présent de sélectionner la ligne à supprimer et de cliquer sur le bouton tout simplement
}
});
contentPane.add(Supprimer);
// Titre
JLabel lblModifierLaBanque = new JLabel("Modifier la banque d'habits");
lblModifierLaBanque.setFont(new Font("Monotype Corsiva", Font.PLAIN, 50));
lblModifierLaBanque.setBounds(35, 50, 492, 55);
contentPane.add(lblModifierLaBanque);
//Création du fond d'écran
JLabel lblNewLabel = new JLabel("");
lblNewLabel.setFont(new Font("Bradley Hand ITC", Font.PLAIN, 38));
lblNewLabel.setBackground(new Color(135, 206, 250));
lblNewLabel.setForeground(new Color(0, 191, 255));
lblNewLabel.setIcon(new ImageIcon(BrainyDressv1.class.getResource("/images/wallpaper.jpg")));
lblNewLabel.setBounds(0, 0, 559, 662);
contentPane.add(lblNewLabel);
}
class IconRenderer extends DefaultTableCellRenderer {
public IconRenderer() {
super();
}
protected void setValue(Object value) {
if(value == null)
setText("");
else
setIcon((Icon) value);
}
}
class SwingAction extends AbstractAction {
public SwingAction() {
putValue(NAME, "Retour");
putValue(SHORT_DESCRIPTION, "Some short description");
}
public void actionPerformed(ActionEvent e) {
MenuPrince frame2 = new MenuPrince(); // Non pas comme je le souhaite, au lieu de faire un retour en arrière
// (car le menu principal et la 1ère fenetre ouverte lors du programme)
// Il me crée une nouvelle fênetre par dessus celle active du Menu Principal
frame2.setVisible(true);
//tu veux avoir une seulle fenetre à la fois ?
//tu peux jouer sur les .setVisible(false) et .setVisible(true)
//selon la fenetre que tu veux faire apparaitre ou disparaitre
}
}
class CenterTableRenderer extends DefaultTableCellRenderer {
public Component getTableCellRendererComponent(JTable table, Object value, boolean isSelected, boolean hasFocus, int row, int column) {
super.getTableCellRendererComponent(table, value, isSelected, hasFocus, row, column);
this.setHorizontalAlignment(JLabel.CENTER);
return this;
}
}
} |
Partager