[JAVA] JList Multiselection - Suppression
Résolu/Fermé
A voir également:
- [JAVA] JList Multiselection - Suppression
- Waptrick java football - Télécharger - Jeux vidéo
- Jeux java itel football - Télécharger - Jeux vidéo
- Forcer suppression fichier - Guide
- Java apk - Télécharger - Langages
- Waptrick java voiture - Télécharger - Jeux vidéo
4 réponses
Bon j'ai encore résolu un de mes problèmes ^^"
Mais il m'en reste encore un... et après j'ai fini ^^
- la sélection multiple ne se fait qu'avec le bouton "Ctrl".
J'aimerai qu'elle se fasse seulement avec le clic de la souris... c'est possible ou non ? On m'a dit que oui mais j'ai pas eu de solution... HELP PLEASE !
Voici mon code modifié :
Mais il m'en reste encore un... et après j'ai fini ^^
- la sélection multiple ne se fait qu'avec le bouton "Ctrl".
J'aimerai qu'elle se fasse seulement avec le clic de la souris... c'est possible ou non ? On m'a dit que oui mais j'ai pas eu de solution... HELP PLEASE !
Voici mon code modifié :
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"); //Création de la JList en multi-sélection list.setSelectionMode(ListSelectionModel.MULTIPLE_INTERVAL_SELECTION ); while(result.next()) { dlm.addElement(result.getString("id")); } list.setModel(dlm); //Sélection de tous les items dans la JList list.addSelectionInterval(0, dlm.size()); //Fermeture result.close(); state.close(); } catch (Exception e) { System.out.println("Une erreur est survenue !"); e.printStackTrace(); } } public Fenetre() { //Création d'une fenêtre pour encadrer la JList JScrollPane listScroller = new JScrollPane(list); listScroller.setPreferredSize(new Dimension(190, 240)); JPanel panel = new JPanel(); panel.add(listScroller); JButton bouton = new JButton("Supprimer"); bouton.addActionListener(this); panel.add(bouton); //Création de la consigne JLabel label = new JLabel("Désélectionnez les éléments que vous ne voulez pas supprimer."); label.setHorizontalAlignment(JLabel.CENTER); //Création de la fenêtre this.setTitle("Suppression"); this.setSize(400, 300); this.setLocationRelativeTo(null); setResizable(false); this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); container.setLayout(new BorderLayout()); container.add(panel, BorderLayout.CENTER); container.add(label, BorderLayout.NORTH); 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... { //Suppression du CAMPI_1 Statement state2; try { state2 = cnx.createStatement(); state2.executeUpdate("DELETE FROM dbo.CAMPI_1 WHERE id_pratica = " + dlm.get(i)); //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 = " + dlm.get(i)); //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 = " + dlm.get(i)); //state4.close(); } catch(Exception e1) { System.out.println("Une erreur est survenue !"); e1.printStackTrace(); } } } //Supprimer tous les éléments de la JList dlm.clear(); //Raffraichir la JList try { Statement state4 = cnx.createStatement(); ResultSet result = state4.executeQuery("SELECT id FROM dbo.Pratica WHERE id NOT IN (SELECT id_pratica FROM Faldone WHERE id_scomparto IS NOT NULL)ORDER BY id"); //Création de la JList en multi-sélection list.setSelectionMode(ListSelectionModel.MULTIPLE_INTERVAL_SELECTION ); while(result.next()) { dlm.addElement(result.getString("id")); } list.setModel(dlm); //Sélection de tous les items dans la JList list.addSelectionInterval(0, dlm.size()); //Fermeture result.close(); state4.close(); } catch(Exception e1) { System.out.println("Une erreur est survenue !"); e1.printStackTrace(); } } }
Bon bin du coup j'ai finit mon programme toute seule... Je n'ai pas résolue mon problème comme je le voulais mais je suis passée par un autre chemin ^^ Merci à Maxime le roi du JAVA ^^
Voici le code pour ceux que cela intéressera pour plus tard... Il est pas parfait, mais ça marche ^^"
Voici le code pour ceux que cela intéressera pour plus tard... Il est pas parfait, mais ça marche ^^"
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 JButton boutonSupp, boutonSelect; public JLabel label1, label2; static JList list = new JList(); static DefaultListModel dlm=new DefaultListModel(); static Connection cnx; static int 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"); //Création de la JList en multi-sélection while(result.next()) { dlm.addElement(result.getString("id")); } list.setModel(dlm); //Sélection de tous les items dans la JList list.addSelectionInterval(0, dlm.size()-1); //Fermeture result.close(); state.close(); } catch (Exception e) { System.out.println("Une erreur est survenue !"); e.printStackTrace(); } } public Fenetre() { //Création d'une fenêtre pour encadrer la JList JScrollPane listScroller = new JScrollPane(list); listScroller.setPreferredSize(new Dimension(180, 240)); JPanel panel = new JPanel(); panel.add(listScroller); //Création des boutons boutonSupp = new JButton("Supprimer"); boutonSupp.addActionListener(this); panel.add(boutonSupp); boutonSelect = new JButton("Tout sélectionner"); boutonSelect.addActionListener(this); panel.add(boutonSelect); //Création des consignes label1 = new JLabel("Désélectionnez les éléments que vous ne voulez pas supprimer."); label1.setHorizontalAlignment(JLabel.CENTER); label2 = new JLabel("Pour désélectionner un élément faire CTRL + clic gauche."); label2.setHorizontalAlignment(JLabel.CENTER); //Création de la fenêtre this.setTitle("Suppression"); this.setSize(400, 340); this.setLocationRelativeTo(null); setResizable(false); this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); container.setLayout(new BorderLayout()); container.add(panel, BorderLayout.CENTER); container.add(label1, BorderLayout.NORTH); container.add(label2, BorderLayout.SOUTH); this.setContentPane(container); this.setVisible(true); } public void actionPerformed(ActionEvent e) { Object source=e.getSource(); //Si clique sur "Supprimer" if (source==boutonSupp) { //Supprime tous les éléments sélectionnés dans la JList for (i=0;i<dlm.size();i++) { if (list.isSelectedIndex(i)) // si l'élément est sélectionné alors... { try { //Suppression du CAMPI_1 Statement state2; state2 = cnx.createStatement(); state2.executeUpdate("DELETE FROM dbo.CAMPI_1 WHERE id_pratica = " + dlm.get(i)); state2.close(); //Suppresion du faldone state2 = cnx.createStatement(); state2.executeUpdate("DELETE FROM dbo.Faldone WHERE id_pratica = " + dlm.get(i)); state2.close(); //Suppression du Pratica state2 = cnx.createStatement(); state2.executeUpdate("DELETE FROM dbo.Pratica WHERE id = " + dlm.get(i)); state2.close(); } catch(Exception e1) { System.out.println("Une erreur est survenue !"); e1.printStackTrace(); } } } //Supprimer tous les éléments de la JList dlm.clear(); //Raffraichir la JList try { Statement state3 = cnx.createStatement(); ResultSet result = state3.executeQuery("SELECT id FROM dbo.Pratica WHERE id NOT IN (SELECT id_pratica FROM Faldone WHERE id_scomparto IS NOT NULL)ORDER BY id"); //Création de la JList en multi-sélection while(result.next()) { dlm.addElement(result.getString("id")); } list.setModel(dlm); //Sélection de tous les items dans la JList list.addSelectionInterval(0, dlm.size()); //Fermeture result.close(); state3.close(); } catch(Exception e1) { System.out.println("Une erreur est survenue !"); e1.printStackTrace(); } } //Si clique sur "Tout sélectionner" else if (source==boutonSelect) list.setSelectionInterval(0,dlm.size()-1); } }
Bon j'ai résolu mon problème majeur ^^"
MAIS pas les autres :
- 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.
Je remet le code que je viens de changer ^^ , j'ai mis en gras et souligner le nouveau code :
MAIS pas les autres :
- 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.
Je remet le code que je viens de changer ^^ , j'ai mis en gras et souligner le nouveau 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; static int[] a; 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); //Sélection de tous les items dans la JList //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 = " + dlm.get(i)); //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 = " + dlm.get(i)); //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 = " + dlm.get(i)); //state4.close(); } catch(Exception e1) { System.out.println("Une erreur est survenue !"); e1.printStackTrace(); } } else { System.out.println(dlm.get(i) + " pas sélectionné."); } } //Raffraichir pour une nouvelle utilisation dlm.clear(); } }