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
| package be.iepscfjemelle.nicolay.projet_sgbd.vues;
import be.iepscfjemelle.nicolay.projet_sgbd.controler.Controler;
import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.Component;
import static java.awt.Component.CENTER_ALIGNMENT;
import java.awt.Container;
import java.awt.Font;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
import java.util.ArrayList;
import javax.swing.JDialog;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JTable;
import javax.swing.table.DefaultTableCellRenderer;
import javax.swing.table.TableCellRenderer;
/**
* Class qui va me permettre de de choisir un client dans une table pour faire
* une modification
*
*/
public class TabUpdateClient extends JDialog {
/**
* Attributs
*/
private final Controler contr;
private final ArrayList list;
/**
* Attributs graphique
*/
private JPanel mainPanel, panelhaut;
private JLabel label;
private JTable tableau;
/**
* Constructeur
*
* @param list
* @param contr
*/
public TabUpdateClient(ArrayList list, Controler contr) {
this.contr = contr;
this.list = list;
initComponent();
}
private void initComponent() {
//Config de la fenêtre
setTitle("Liste des clients");
setSize(1200, 700);
setResizable(true);
setLocationRelativeTo(null);
setDefaultCloseOperation(JDialog.DO_NOTHING_ON_CLOSE);
Container contenu = getContentPane();
//Config du label et de la table.
//création de mon panel principal
mainPanel = new JPanel();
mainPanel.setLayout(new BorderLayout());
contenu.add(mainPanel);
//Création du panel du haut
panelhaut = new JPanel();
mainPanel.add(panelhaut, BorderLayout.NORTH);
//Creation et config du tableau
tableau = new JTable(new TabModelUpdateClients(this.list));
tableau.getTableHeader().setBackground(Color.blue);//fond entête colonne
tableau.getTableHeader().setForeground(Color.WHITE);//Couleur police entêtecolonne
JScrollPane tabContainer = new JScrollPane(tableau);
tableau.setAutoCreateRowSorter(true);//Permet le tri en cliquant sur le entête de colonne
//tableau.removeColumn(tableau.getColumnModel().getColumn(0));//je chache la colonne id
mainPanel.add(tabContainer, BorderLayout.CENTER);
//ajout du label au panel du haut
label = new JLabel("Nombres de clients: " + tableau.getRowCount(), (int) CENTER_ALIGNMENT);
Font font = new Font("Arial", Font.BOLD, 20);
label.setFont(font);
panelhaut.add(label);
/**
* TableCellRenderer pour les String, qui permet de donné un rendu aux
* cellule d'un tableau, via une classe anonyme. Si Paire, fond blanc,
* impaire fond gris légé.
*/
tableau.setDefaultRenderer(Object.class,
new TableCellRenderer() {
private final DefaultTableCellRenderer DEFAULT_RENDERER = new DefaultTableCellRenderer();
@Override
public Component getTableCellRendererComponent(JTable table, Object value, boolean isSelected, boolean hasFocus, int row, int column) {
Component cel = DEFAULT_RENDERER.getTableCellRendererComponent(table, value, isSelected, hasFocus, row, column);
if (row % 2 == 0) {
cel.setBackground(Color.WHITE);
} else {
cel.setBackground(Color.LIGHT_GRAY);
}
return cel;
}
}
);
//fenetre de confirmation quand clic croix
addWindowListener(
new WindowAdapter() {
@Override
public void windowClosing(WindowEvent e
) {
int confirmed = JOptionPane.showConfirmDialog(null, "Voulez-vous quitter la fenêtre?", "Quitter modification client", JOptionPane.YES_NO_OPTION);
if (confirmed == JOptionPane.YES_OPTION) {
setDefaultCloseOperation(JDialog.DISPOSE_ON_CLOSE);
} else {
setDefaultCloseOperation(JDialog.DO_NOTHING_ON_CLOSE);
}
}
}
);
/**
* méthode qui va permettre de recréer un objet à partir d'un clic de
* souris dans ma table.
*
* @param event
*/
/*tableau.addMouseListener(new java.awt.event.MouseAdapter() {//class anonyme
@Override
public void mouseClicked(java.awt.event.MouseEvent event) {
int row = tableau.rowAtPoint(event.getPoint());//renvoie le numéro de la ligne
//on récupère les info dans la ligne clickée et dans chaque colonne pour recréer un objet à partir d'un clic dans une colonne
Client clientSelected = new Client();
clientSelected.setId((int) tableau.getModel().getValueAt(row, 0));
clientSelected.setPrenom((String) tableau.getModel().getValueAt(row, 1));
clientSelected.setNom((String) tableau.getModel().getValueAt(row, 2));
//clic sur une ligne client affiche une deuxième fenêtre avec boutons
//qui permet de voir les films loués par un client sous forme de tableau ou de graphique.
gest.afficheFilmsLouesClient(clientSelected.getId(), clientSelected.getPrenom(), clientSelected.getNom());
}
});*/
}
} |
Partager