Ensuite j'ai un bouton "Supprimer" qui comme son nom l'indique, doit supprimer... mais quoi ? Il doit supprimer les éléments sélectionnés dans la JList.
Mes problèmes :
- je n'arrive pas à supprimer tous les éléments sélectionnés... que se soit dans la liste ou dans ma BDD.
- la sélection multiple ne se fait qu'avec le bouton "Ctrl".
- j'aimerai que dès le lancement du programme, tous les éléments soient sélectionnés.
Pouvez-vous m'aider à résoudre ces problèmes ?
Merci d'avance...
Je vous fournis mon code. D'ailleurs s'il y a des critiques n'hésitez pas à les faire, pour que j'améliore mon code ^^ :
import java.awt.*;
import java.awt.event.*;
import java.sql.*;
import javax.swing.*;
public class Fenetre extends JFrame implements ActionListener
{
public JPanel container = new JPanel();
public static JList list = new JList();
public static DefaultListModel dlm=new DefaultListModel();
public static Connection cnx;
public static int c, i;
public static void main(String[] args)
{
Fenetre fen = new Fenetre();
try
{
//Connection à la base de données
Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
cnx=DriverManager.getConnection("jdbc:sqlserver://localhost;database=test;user=sa;password=Administrateur");
Statement state = cnx.createStatement();
ResultSet result = state.executeQuery("SELECT id FROM dbo.Pratica WHERE id NOT IN (SELECT id_pratica FROM Faldone WHERE id_scomparto IS NOT NULL)ORDER BY id");
ResultSetMetaData resultMeta = result.getMetaData();
//Création de la JList
list.setSelectionMode(ListSelectionModel.MULTIPLE_INTERVAL_SELECTION );
while(result.next())
{
dlm.addElement(result.getString("id"));
}
list.setModel(dlm);
//Fermeture
result.close();
state.close();
}
catch (Exception e)
{
System.out.println("Une erreur est survenue !");
e.printStackTrace();
}
}
public Fenetre()
{
//Création de la fenêtre
JPanel panel = new JPanel();
panel.add(list);
JButton bouton = new JButton("Supprimer");
bouton.addActionListener(this);
panel.add(bouton);
this.setTitle("Suppression");
this.setSize(400, 500);
this.setLocationRelativeTo(null);
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
container.setBackground(Color.white);
container.setLayout(new BorderLayout());
container.add(panel, BorderLayout.CENTER);
this.setContentPane(container);
this.setVisible(true);
}
public void actionPerformed(ActionEvent e)
{
//Evénement sur le boutton :
//Supprime tous les éléments sélectionnés dans la JList
c = dlm.size() ; //Compte le nombre d'élément dans la JList
for (i=0;i<c;i++)
{
if (list.isSelectedIndex(i)) // si l'élément est sélectionné alors...
{
System.out.println("Valeur de la selection " + dlm.get(i));
//Suppression du CAMPI_1
Statement state2;
try
{
state2 = cnx.createStatement();
state2.executeUpdate("DELETE FROM dbo.CAMPI_1 WHERE id_pratica = " + list.getSelectedValue());
state2.close();
}
catch(Exception e1)
{
System.out.println("Une erreur est survenue !");
e1.printStackTrace();
}
//Suppresion du faldone
Statement state3;
try
{
state3 = cnx.createStatement();
state3.executeUpdate("DELETE FROM dbo.Faldone WHERE id_pratica = " + list.getSelectedValue());
state3.close();
}
catch(Exception e1)
{
System.out.println("Une erreur est survenue !");
e1.printStackTrace();
}
//Suppression du Pratica
Statement state4;
try
{
state4 = cnx.createStatement();
state4.executeUpdate("DELETE FROM dbo.Pratica WHERE id = " + list.getSelectedValue());
state4.close();
}
catch(Exception e1)
{
System.out.println("Une erreur est survenue !");
e1.printStackTrace();
}
}
else
{
System.out.println(dlm.get(i) + " pas sélectionné.");
}
dlm.remove(i);
}
}
}
