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
| import java.awt.BorderLayout;
import java.awt.Point;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import javax.swing.JFrame;
import javax.swing.JMenuItem;
import javax.swing.JOptionPane;
import javax.swing.JPopupMenu;
import javax.swing.JScrollPane;
import javax.swing.JTable;
import javax.swing.table.DefaultTableModel;
import javax.swing.table.TableColumn;
public class Dep extends JFrame {
private JTable tableau;
private String supp = "Supprimer la ligne";
public Dep(){
this.setLocationRelativeTo(null);
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
this.setTitle("Liste des départements");
this.setSize(400, 90);
this.createContent();
}
private void createContent(){
Object[][] data = {{"Comptabilité", "HP LaserJet 1300"}, {"DAF", "HP LaserJet 1018 Printer"}};
String title[] = {"Département", "Imprimante"};
this.tableau = new JTable(new DefaultTableModel(data, title));
this.tableau.getTableHeader().addMouseListener(new MouseAdapter(){
@Override
public void mouseReleased(MouseEvent event){
if(event.getButton() == MouseEvent.BUTTON3){
if(tableau.columnAtPoint(new Point(event.getX(), event.getY())) != -1){
JMenuItem ajouter = new JMenuItem("Ajouter une colonne");
ajouter.addActionListener(new AddListener());
JMenuItem erase = new JMenuItem("Effacer cette colonne");
erase.addActionListener(new EraseListener(new Point(event.getX(), event.getY())));
JPopupMenu menu = new JPopupMenu();
menu.add(ajouter);
menu.add(erase);
menu.show(tableau, event.getX(), event.getY());
}
}
}
});
this.getContentPane().add(new JScrollPane(tableau), BorderLayout.CENTER);
}
class EraseListener implements ActionListener{
private Point point = null;
private Object[][] data;
private Object[] title;
public EraseListener(Point col){
this.point = col;
}
@Override
public void actionPerformed(ActionEvent event) {
int col = tableau.columnAtPoint(this.point);
TableColumn column = tableau.getColumn(tableau.getColumnName(col));
initNewData(column);
((DefaultTableModel)tableau.getModel()).setDataVector(this.data, this.title);
}
private void initNewData(TableColumn column){
this.data = new Object[tableau.getRowCount()][tableau.getColumnCount()-1];
this.title = new Object[tableau.getColumnCount()-1];
for(int i = 0; i < tableau.getRowCount(); i++){
for(int j = 0, k = 0; j < tableau.getColumnCount(); j++){
if(!((DefaultTableModel)tableau.getModel()).getColumnName(j).equals(column.getHeaderValue())){
if(i == 0)this.title[k] = ((DefaultTableModel)tableau.getModel()).getColumnName(j);
this.data[i][k] = tableau.getValueAt(i, j);
k++;
}
}
}
}
}
class AddListener implements ActionListener{
@Override
public void actionPerformed(ActionEvent event) {
JOptionPane jop = new JOptionPane(), jop2 = new JOptionPane();
String nom = JOptionPane.showInputDialog(null, "Saisissez le nom de la nouvelle colonne", "Ajout d'une colonne", JOptionPane.QUESTION_MESSAGE);
if(nom != null){
if(!nom.trim().equals("")){
((DefaultTableModel)tableau.getModel()).addColumn(nom);
}
}
}
}
private void action_inscri(java.awt.event.MouseEvent evt) {
try {
Class.forName("org.postgresql.Driver");
Connection conn = DriverManager.getConnection("jdbc:postgresql://localhost:5432/Ecole", "postgres", "postgres");
PreparedStatement ps = conn.prepareStatement("INSERT INTO departement(dep) VALUES (?)");
ps.setObject(1, "toto");
ps.executeUpdate();
ps.close();
conn.close();
}
catch (Exception ex){
System.out.print("Erreur");
}
}
} |
Partager